En este ejercicio se prenden 3 LED's con un delay de 2500 ms, las luces simulan un semáforo.
*Conectar un cable desde GND a la lina azul del protoboard. Conectar un cable desde el pin digital 2 hasta la pata izquierda del LED y una resistencia desde la linea azul hasta la para derecha del LED. Repetir lo mismo con el pin digital 3 y 4.
*Cargar el siguiente código:
int pinRedLed = 2;
int pinYelLed = 3;
int pinGrnLed = 4;
int lightState = 0;
void setup() {
pinMode(pinRedLed, OUTPUT); /* Set the LED pins to output */
pinMode(pinYelLed, OUTPUT);
pinMode(pinGrnLed, OUTPUT);
digitalWrite(pinRedLed, HIGH); /* Turn the RED light on, so we don't cause any traffic accidents while we initialise <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"> */
}
void loop() {
lightState++;
if (lightState > 3) { // If the light state > 3, reset it to 0 (red).
lightState = 0;
}
delay(2500);
/* Display correct light sequence */
if (lightState == 0) { // Red
digitalWrite(pinRedLed, HIGH);
lightOff(pinYelLed);
lightOff(pinGrnLed);
}
if (lightState == 1) { // Red and Amber
digitalWrite(pinRedLed, HIGH);
digitalWrite(pinYelLed, HIGH);
lightOff(pinGrnLed);
}
if (lightState == 2) { // Green
digitalWrite(pinGrnLed, HIGH);
lightOff(pinYelLed);
lightOff(pinRedLed);
}
if (lightState == 3) { // Amber-only
digitalWrite(pinYelLed, HIGH);
lightOff(pinRedLed);
lightOff(pinGrnLed);
}
}
void lightOff(int pin) {
digitalWrite(pin, LOW);
}
*Video semáforo 2:
No hay comentarios:
Publicar un comentario