from machine import Pin
import utime
# Configuración de los pines para los LEDs y la chicharra
red = Pin(15, Pin.OUT) # LED rojo
yellow = Pin(14, Pin.OUT) # LED amarillo
green = Pin(13, Pin.OUT) # LED verde
buzzer = Pin(16, Pin.OUT) # Chicharra
# Configuración del botón
button = Pin(12, Pin.IN, Pin.PULL_DOWN) # Botón con resistencia pull-down
def semaforo():
while True:
if button.value() == 1: # Si el botón está presionado
# Mantener el semáforo en rojo y activar la chicharra
green.value(0)
yellow.value(0)
red.value(1)
buzzer.value(1)
print("Botón presionado: Semáforo en ROJO y chicharra activada")
utime.sleep(0.1) # Pequeña espera para evitar rebotes
else:
# Apagar el buzzer y continuar con el ciclo del semáforo
buzzer.value(0)
# Fase 1: Verde encendido
green.value(1)
yellow.value(0)
red.value(0)
print("Semáforo en VERDE")
utime.sleep(5) # 5 segundos
# Fase 2: Amarillo encendido
green.value(0)
yellow.value(1)
red.value(0)
print("Semáforo en AMARILLO")
utime.sleep(2) # 2 segundos
# Fase 3: Rojo encendido
green.value(0)
yellow.value(0)
red.value(1)
print("Semáforo en ROJO")
utime.sleep(5) # 5 segundos
# Ejecuta el semáforo
semaforo()