Practicas de Arduino
Practicas de Arduino
Practicas de Arduino
1 DE BACHILLERATO
PROYECTO INTEGRADO: TALLER DE ROBTICA
Montaje
Programa:
/*
Parpadeo: Enciende un LED un segundo, entonces se apaga 1 segundo y as
sucesivamente. El LED est conectado al Pin 3 y lleva en serie una resistencia de
proteccin cuyo valor podr estar entre 120 y 220 .
*/
int ledPin = 3; // LED conectado a pin 3
void setup()
{
// inicializa el pin 3 como salida
pinMode(ledPin, OUTPUT);
}
// ahora hacemos un bucle
void loop()
{
digitalWrite(ledPin, HIGH); // enciende el LED
delay(1000);
// espera un segundo
digitalWrite(ledPin, LOW); // apaga el LED
delay(1000);
// espera un segundo
}
Actividades:
1. Con el mismo montaje varia el tiempo de encendido y apagado del LED,
ahora debe ser de 2 segundos
2. Con el mismo montaje, el LED debe estar encendido 1 segundo y
apagado 3 segundos.
3. Cambia el pin donde conectamos el LED al pin 6, modifica el programa
para que funcione adecuadamente.
4. Aade en serie un potencimetro Qu ocurre cuando giras el
potencimetro?
Montaje
Programa
/*
Parpadeo. Practica 2
Un led siempre encendido, rojo
Un segundo led verde se enciende 1 seg y se apaga 0,5 segundos
*/
int ledrojo = 1; // LED rojo conectado al pin 1
int ledverde=8; // LED verde conectado al pin 8
void setup()
{
//ledrojo y ledverde son variables de salida
pinMode(ledrojo, OUTPUT);
pinMode(ledverde,OUTPUT);
}
void loop()
{
digitalWrite(ledrojo, HIGH); // enciende el led rojo
digitalWrite(ledverde,HIGH); //enciende el led verde
delay(1000);
// espera un segundo
digitalWrite(ledverde, LOW); // apaga el led verde
delay(500);
// espera medio segundo
}
Actividades
1.- Cambia el programa para que se mantenga encendido el LED verde y
parpadea el rojo.
2.- Cambia el programa para que el LED rojo est encendido 1,5 segundos y
apagado 0,8 segundos.
3.- Cambia el programa para que cuando el LED rojo este encendido el LED
verde est apagado y cuando el LED rojo est apagado el LED verde est
encendido. Frecuencia de 1 segundo.
4.- Monta un LED amarillo y modifica el programa para que se enciendan los
LED con la siguiente secuencia Verde-Amarillo-Rojo
5.- Los LED deben encenderse con la secuencia siguiente: Verde-Amarillo-Rojo
esperar 2 segundos todos apagados Rojo-Amarillo-Verde esperar 2 segundos
todos encendidos.
Montaje
Programa
/*El objetivo de este programa es controlar el encendido y apagado de un led
*Si el pulsador est pulsado se enciende el LED si no est apagado */
int pulsador=8;
int led=1;
int val=0;
void setup(){
pinMode(pulsador,INPUT);
pinMode(led,OUTPUT);
}
void loop(){
val=digitalRead(pulsador);
if(val==HIGH){
digitalWrite(led,HIGH);
}
else{
digitalWrite(led,LOW);
}
}
Actividades
1.- Cambia el programa para que cuando el pulsador est pulsado el LED se
apaga y cuando est sin pulsar el LED est encendido
2.- Pon un LED verde y varia el programa para que cuando acciones el
pulsador el LED rojo est encendido y el LED verde apagado, al dejar de pulsar
el LED rojo se apaga y se enciende el LED verde
3.- Al presionar un pulsador 1 debe encenderse el LED rojo y al presionar el
pulsador 2 debe apagarse el LED rojo y encenderse el verde.
4.- Hacer un programa con tres LED que se enciendan Verde-Amarillo-Rojo y
cuando pulsemos el pulsador que cambie la secuencia a Amarillo-RojoAmarillo-Verde
5.- Cuando pulsemos el pulsador la secuencia de dos LED Verde y Rojo va
mas rpido
Montaje
Programa
/* El semaforo est rojo para el peatn
*Cuando el peatn pulsa el botn el LED rojo se apaga y se enciende el verde
*El LEd verde se mantiene encendido 5 segundos y luego se enciende el rojo
*/
int interruptor=8;
int ledrojo=1;
int ledverde=5;
int val=0;
void setup(){
pinMode(interruptor,INPUT);
pinMode(ledrojo,OUTPUT);
pinMode(ledverde,OUTPUT);
}
void loop(){
val=digitalRead(interruptor);
if(val==HIGH){
digitalWrite(ledrojo,LOW);
digitalWrite(ledverde,HIGH);
delay(5000);
digitalWrite(ledverde,LOW),
digitalWrite(ledrojo,HIGH);
}
else{
digitalWrite(ledrojo,HIGH);
}
}
Actividades
1.- Cambia el programa para que cuando pulsamos el interruptor el LED rojo
tarde un segundo en apagarse para evitar que los coches tengan que dar un
frenazo
Diagrama de flujo
Montaje
Programa
/*
Este programa nos permite conocer las veces que cambiamos una entrada de
un estado a otro.
Encendido o apagado
*/
int pulsadorPin = 2; // el pin donde hemos conectado el pulsador
int ledPin = 7;
// el pin donde hemos conectado el led
int contador = 0; // cuenta el numero de veces que pulsamos
int estadopulsador = 0;
// estado actual del pulsador
int estadoanteriorpulsador = 0; // estado anterior del pulsador
void setup() {
pinMode(pulsadorPin, INPUT); // pulsador es una entrada
pinMode(ledPin, OUTPUT);//el LED es una salida
Serial.begin(9600);//abre puerto serie
}
void loop() {
// read the pushbutton input pin:
estadopulsador = digitalRead(pulsadorPin);//nos dice si el pulsador est
pulsado o no
if (estadopulsador != estadoanteriorpulsador) {//compara el estado actual con
el anterior
// si el estado cambia aumenta el contador
if (estadopulsador == HIGH) {
contador++;//contador aumenta
digitalWrite(ledPin,HIGH);//enciende el led
Serial.println("on"); //imprime datos al puerto serie con retorno de carro
Serial.print("numero de veces que pulsamos: "); //imprime puerto serie sin
retorno de carro
Serial.println(contador, DEC);
}
else {
digitalWrite(ledPin,LOW); //apaga el led
Serial.println("off");
}
estadoanteriorpulsador = estadopulsador;//salva el estado actual como
ltimo estado
}
}
Actividades
1.- Cambiar el programa para que el LED se encienda cuando se pulsa cuatro
veces
2.- Cmo podemos conseguir que cuente hasta 10 y se reinicialice el
programa?
Nota: la actividad n 2 es lo suficientemente complicada como para
considerarla un reto. As pues:
Si consigue solucionarla una sola persona, tendr 1,5 puntos ms en la
evaluacin.
Si consiguen solucionarla 2 personas del mismo grupo, cada una de
ellas tendr 1 punto ms en la evaluacin.
Si consiguen solucionarla 3 personas del mismo grupo, cada una de
ellas tendr 0,8 puntos ms en la evaluacin.
Si consiguen solucionarla 2 o ms personas de distinto grupo, tan slo
os dar 0,1 puntos ms en la evaluacin a quienes lo averigen:
recordad que cada grupo es un equipo de investigadores, y que hay que
tratar de impedir el espionaje industrial...
Tenis de tiempo para pensarlo desde el momento en el que leis estas lneas
hasta la semana siguiente a aquella en la que se plantee en clase realizar esta
prctica.
Montaje
Programa
/*
* Para simular la luz de la vela necesitamos:
* Saca por una de las salidas del puerto PWM un valor aleatorio que activa un
LED
*/
int ledPin = 9; // selecciona el puerto PWM
int val = 0; // define y pone a cero la variable "brillo"
int delayval = 0; // define el intervalo de cambio de valor de salida
void setup() {
randomSeed(0); // inicializa el generador de nmeros aleatorios
pinMode(ledPin, OUTPUT); // declara el pin de SALIDA pin 9
}
void loop() {
val = random(100,255); // genera un nmero aleatorio entre 100 y 255 que asigna a la variable val
analogWrite(ledPin, val); // enva ese valor a la salida pin 9
delayval = random(50,150); // genera un numero aleatorio entre 50 y 150 y lo
asigna a la variable de temporizacin
delay(delayval); // espera un tiempo delayval medido en milisegundos
}