// Definición de pines
const int boton1 = 5; // Activar LED verde
const int boton2 = 18; // Activar LED amarillo (si verde está apagado)
const int boton3 = 19; // Forzar LED rojo
const int ledVerde = 21;
const int ledAmarillo = 22;
const int ledRojo = 23;
void setup() {
// Configuración de pulsadores como entradas (sin pull-up interno)
pinMode(boton1, INPUT);
pinMode(boton2, INPUT);
pinMode(boton3, INPUT);
// Configuración de LEDs como salidas
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledRojo, OUTPUT);
// Inicialización de LEDs apagados
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, LOW);
}
void loop() {
// Lectura de estados de los pulsadores
bool estadoBoton1 = digitalRead(boton1); // Se espera HIGH al presionar
bool estadoBoton2 = digitalRead(boton2);
bool estadoBoton3 = digitalRead(boton3);
// Aplicar las funciones lógicas directamente en digitalWrite
digitalWrite(ledVerde, estadoBoton1 && !estadoBoton3 && !estadoBoton2);
digitalWrite(ledAmarillo, estadoBoton2 && !estadoBoton3);
digitalWrite(ledRojo, estadoBoton3);
}