#define RED 1 //El pin GP1 lo nombramos RED
#define YELLOW 5 //El pin GP5 lo nombramos YELLOW
#define GREEN 11 //El pin GP11 lo nombramos GREEN
#define BUTTON 3 // Pin donde se conecta el botón
void setup() { //Esta funcion se ejecuta una sola vez al encender el arduino
pinMode(RED, OUTPUT); //Configuramos el pin RED como salida
pinMode(YELLOW, OUTPUT); //Configuramos el pin YELLOW como salida
pinMode(GREEN, OUTPUT); //Configuramos el pin GREEN como salida
pinMode(BUTTON, INPUT); // Configuramos el BUTTON como entrada
}
void loop() { //Codigo principal, esta funcion se ejecuta infinitamente (secuencia)
// Anti-rebote: leemos el botón dos veces con pequeño retardo
if (digitalRead(BUTTON) == HIGH) {
delay(10); // Pequeño retardo para evitar rebote
if (digitalRead(BUTTON) == HIGH) {
// Botón presionado: ejecutar la secuencia del semáforo
digitalWrite(GREEN, HIGH); //Encendemos la luz del GREEN (envía 5V al pin 11).
delay(3000); //Encendido por 3segundos
digitalWrite(GREEN, LOW); //Apagamos la luz del GREEN (envía 0V al pin 11).
digitalWrite(YELLOW, HIGH); //Encendemos la luz del YELLOW (envía 5V al pin 5)
delay(2000); //Encendido por 0.5 segundos MODIFICAMOS A 2 SEGUNDOS
digitalWrite(YELLOW, LOW); //Apagamos la luz del YELLOW (envía 0V al pin 5).
digitalWrite(RED, HIGH); //Encendemos la luz del RED (envía 5V al pin 1)
delay(6000); //Encendido por 2 segundos MODIFICAMOS A 6 SEGUNDOS
digitalWrite(RED, LOW); //Apagamos la luz del RED (envía 0V al pin 1).
digitalWrite(YELLOW, HIGH); //Encendemos la luz del YELLOW (envía 5V al pin 5)
delay(2000); //Encendido por 0.5 segundos MODIFICAMOS A 2 SEGUNDOS
digitalWrite(YELLOW, LOW); //Apagamos la luz del YELLOW (envía 0V al pin 5).
}
}
}