#define TIME 2000
void setup() {
pinMode(2, OUTPUT); //inicializamos la salida 2 digital como salida
pinMode(3, OUTPUT); //inicializamos la salida 3 digital como salida
pinMode(4, OUTPUT); //inicializamos la salida 4 digital como salida
pinMode(8, INPUT_PULLUP); //Pull up resistor para la entrada digital 8
}
void loop() {
long lastMillis = millis();
// verde por un rato
cambioColor(0);
delay(TIME);
//secuencia del amarillo
while (millis()-lastMillis < 4000) { // while para el conteo de milisegundos con condicional
//si la condicional se cumple se termina el ciclo y da paso al siguiente
cambioColor(1);
delay(200);
allOff();
delay(200);
}
cambioColor(2); //De nuevo llamamos a la función CambiaColor pero switch case con valor 2
delay(TIME);
}
void cambioColor(int val) { //Declaración de función CambiaColor, cuando se hace llamar espera
//la entrada de un valor que determinara la casilla en el switch case
switch (val) {//Switch case para la acción con el LED
case 0:
digitalWrite(2, HIGH); //Enciende
digitalWrite(3, LOW);
digitalWrite(4, LOW);
break;
case 1:
digitalWrite(2, LOW);
digitalWrite(3, HIGH); //Enciende
digitalWrite(4, LOW);
break;
case 2:
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
break;
}
}
void allOff() { //Función para apagar todos los LEDs. Esta función no espera un valor de entrada
//solamente apagara todos los LEDs con tan solo llamarla en el código
digitalWrite(2, LOW); //Lineas 48 a 52 apagado de LEDs
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}