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); }
PUNTUACIÓN
REPRODUCIR EL ESQUEMA SEMÁFORO: 5PTS
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 (+1PTO)
2 ) La luz ámbar parpadee 4 veces antes de pasar a verde (+2PTOS)
3) La luces verdes parpadeen alternativamente (una encendida, otra apagada y luego viceversa, siempre hay sólo una encendida) (+2PTOS)
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
Suman hasta un 10%. (SOLO LOS DOS PRIMEROS GRUPOS EN ENTREGAR)
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.