// Definir los pines para los LEDs
const int ledVerde = 3;
const int ledAmarillo = 4;
const int ledRojo = 5;
// Definir el pin del botón
const int botonPin = 2;
// Definir el estado del botón
int botonEstado = 0;
void setup() {
// Configurar los pines de los LEDs como salida
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledRojo, OUTPUT);
// Configurar el pin del botón como entrada con resistencia pull-up
pinMode(botonPin, INPUT_PULLUP);
// Iniciar el semáforo en rojo
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
void loop() {
// Leer el estado del botón
botonEstado = digitalRead(botonPin);
// Si el botón es presionado (estado bajo)
if (botonEstado == LOW) {
// Dar el pase peatonal
digitalWrite(ledRojo, LOW); // Apagar el LED rojo
digitalWrite(ledVerde, HIGH); // Encender el LED verde
delay(5000); // Mantener el verde por 5 segundos
digitalWrite(ledVerde, LOW); // Apagar el LED verde
digitalWrite(ledAmarillo, HIGH); // Encender el LED amarillo
delay(2000); // Mantener el amarillo por 2 segundos
digitalWrite(ledAmarillo, LOW); // Apagar el LED amarillo
digitalWrite(ledRojo, HIGH); // Encender el LED rojo
else {
// Si el botón no está presionado, mantener el semáforo en rojo
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);