/*
Ejercicio práctico mini-curso Arduino
Funcionamiento semáforo
*/
// Declaración variables almacenar número de pines
byte ledVerde = 3;
byte ledNaranja = 4;
byte ledRojo = 5;
// Declaración variable contador
byte contador = 1; // Iniciamos con el primer caso
void setup() {
// Iniciar el monitor serie
Serial.begin(9600);
Serial.println("Se inicia el programa");
// Modo de los pines
pinMode(ledVerde, OUTPUT);
pinMode(ledNaranja, OUTPUT);
pinMode(ledRojo, OUTPUT);
}
void loop() {
Serial.println("Inicio funcion loop");
Serial.print("Contador = ");
Serial.println(contador);
// Si contador es uno hay que encender el LED verde durante 3 segundos
// y apagar el resto de LEDs
if(contador == 1){
Serial.println("Caso contador 1");
// Encender LED verde
digitalWrite(ledVerde, HIGH);
// Apagar LED naranja y rojo
digitalWrite(ledNaranja, LOW);
digitalWrite(ledRojo, LOW);
// Esperar 3 segundos = 3.000 milisegundos
delay(3000);
// Cambiar valor de contador
contador = 2;
// Si contador es dos hay que encender el LED narangja durante 1 segundo
// y apagar el resto de LEDs
}else if (contador == 2){
Serial.println("Caso contador 2");
// Encender LED naranja
digitalWrite(ledNaranja, HIGH);
// Apagar LED verde y rojo
digitalWrite(ledVerde, LOW);
digitalWrite(ledRojo, LOW);
// Esperar 1 segundo = 1.000 milisegundos
delay(1000);
// Cambiar valor de contador
contador = 3;
// Si contador es tres hay que encender el LED rojo durante 4 segundos
// y apagar el resto de LEDs
}else if (contador == 3){
Serial.println("Caso contador 3");
// Encender LED rojo
digitalWrite(ledRojo, HIGH);
// Apagar LED verde y naranja
digitalWrite(ledVerde, LOW);
digitalWrite(ledNaranja, LOW);
// Esperar 4 segundos = 4.000 milisegundos
delay(4000);
// Cambiar valor de contador
contador = 1;
}
}