PROGRAMANDO EL ARDUINO
En esta práctica vamos a empezar a programar el Arduino para poder controlar una serie de ledes. La mayor parte de la explicación está dentro del código (en cursiva) que debes copiar y pegar.
CIRCUITO 1
//Zona declaraciones: En esta parte se declaran variables, funciones, objetos, y estructuras. // vamos a dar un nombre a cada led indicando a que pin esta conectado int rojo1 = 7; //el primer led rojo esta conectado al pin 7... int rojo2 = 6; //el segundo led rojo al pin 6 y asi... int rojo3 = 5; int ambar = 4; int verde1 = 3; int verde2 = 2; ////////////////////////////////////////////////////////////////////////// //Funcion setup: Esta función se ejecuta cada vez que se enciende la placa de Arduino, o se pulsa la tecla Reset. //Realiza funciones de inicialización de periféricos, comunicaciones, variables, etc. void setup() { // todo lo que este entre las llaves pertenece al setup pinMode(rojo1, OUTPUT); //Vamos a establecer que todos los pines con led son pines de salida: "OUTPUT". pinMode(rojo2, OUTPUT); //Esto significa que vamos a poder usarlos para emitir una senal pinMode(rojo3, OUTPUT); pinMode(ambar, OUTPUT); pinMode(verde1, OUTPUT); pinMode(verde2, OUTPUT); } /////////////////////////////////////////////////////////////////////////// //Funcion loop: Esta función se ejecuta contínuamente. Realiza el grueso de tareas del autómata. //Es circular, al acabar se vuelve a ejecutar desde el comienzo. void loop() { //empiezo definiendo los led para cuando el semaforo esta cerrado digitalWrite(rojo1, HIGH); // con digitalWrite voy a encender ledes con la instruccion HIGH... digitalWrite(rojo2, HIGH); digitalWrite(rojo3, HIGH); digitalWrite(ambar, LOW); // ... y apagar con la instruccion LOW digitalWrite(verde1, LOW); digitalWrite(verde2, LOW); //ahora voy a ir apagando las luces rojas una detras de otra esperando tres segundos despues de cada una. //para eso uso delay con la cantidad de microsegundos a esperar delay(3000); digitalWrite(rojo1, LOW); delay(3000); digitalWrite(rojo2, LOW); delay(3000); digitalWrite(rojo3, LOW); //y al mismo tiempo que apago la ultima roja enciendo las dos verdes digitalWrite(verde1, HIGH); digitalWrite(verde2, HIGH); //dejo las luces verdes encendidas 10 segundos delay(10000); //apago las luces verdes y enciendo la luz ambar digitalWrite(verde1, LOW); digitalWrite(verde2, LOW); digitalWrite(ambar, HIGH); //espero 2 seg con el ambar y volvera a empezar el ciclo delay(2000); }
CIRCUITO 2
INTENTA CAMBIAR LOS RITMOS Y TIEMPOS DE LOS LED MODIFICANDO EL CÓDIGO PARA CONSEGUIR QUE:
1 ) La luces rojas se apaguen en el orden inverso
2 ) La luz ámbar parpadee 4 veces antes de pasar a verde
3) La luces verdes parpadeen alternativamente (una encendida, otra apagada y luego viceversa, siempre hay sólo una encendida)
MÁS TEORÍA
Si quieres ampliar acerca de la teoría relativa a LEDs es muy recomendable el tutorial de Luis Llama
PREGUNTAS OPCIONALES
Responde dentro del mismo documento que los obligatorios. Suman hasta un 20%.
a) ¿Por qué en la imagen del ejemplo hay dos tipos de resistencias con dos códigos de colores distintos?
b) En el esquema adjunto de fritzing sobra un cable: ¿Cuál?
Práctica 3 – Semáforo (control de ledes) int, pinMode y digitalWrite
Esto no era aquí. Había que mandar un email. De todas formas no respondes.