import utime
import machine
# Configuración de los pines para el botón y los tres LEDs
button = machine.Pin(7, machine.Pin.IN, machine.Pin.PULL_UP) #pull_up indica que cuando el boton no esta presionado, la entrada es 1
led_green = machine.Pin(28, machine.Pin.OUT)
led_yellow = machine.Pin(26, machine.Pin.OUT)
led_red = machine.Pin(16, machine.Pin.OUT)
# Variable para contar las presiones del botón que incia en cero
presiones = 0
# se crea un bucle infinito que mantendra el programa en ejecucion, revisa si el boton ha sido presionado
while True:
# Verifica si el botón está presionado
if button.value() == 0: # Cuando el botón está presionado devuelve 0 porque tiene pull_up
presiones += 1 # Aumenta el contador de presiones
# Apaga todos los LEDs antes de encender uno nuevo, nos asegura tener un solo led encendido
led_green.value(0)
led_yellow.value(0)
led_red.value(0)
# Enciende el LED correspondiente según el contador de presiones
if presiones == 1:
led_green.value(1) # Enciende el primer LED verde
elif presiones == 2:
led_yellow.value(1) # Enciende el segundo LED amarillo
elif presiones == 3:
led_red.value(1) # Enciende el tercer LED rojo
# Pausa para evitar múltiples lecturas del mismo botón presionado
utime.sleep(0.5)
# Reinicia el contador después de haber encendido el tercer LED
if presiones > 3:
presiones = 0
# Si el botón no está presionado, los LEDs se apagan
else:
led_green.value(0)
led_yellow.value(0)
led_red.value(0)