// 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);
}