from machine import Pin
from time import sleep
# Configuración de pines
led1 = Pin(3, Pin.OUT)
led2 = Pin(28, Pin.OUT)
led3 = Pin(18, Pin.OUT)
boton_modo = Pin(8, Pin.IN, Pin.PULL_DOWN)
boton_direccion = Pin(26, Pin.IN, Pin.PULL_DOWN)
# Variables de estado
modo = 1
direccion_normal = True
prev_boton_modo = 0
prev_boton_direccion = 0
while True:
estado_modo = boton_modo.value()
estado_dir = boton_direccion.value()
# Cambio de modo
if estado_modo == 1 and prev_boton_modo == 0:
modo += 1
if modo > 4:
modo = 1
sleep(0.25)
# Cambio de dirección (solo afecta modo 1 y 2)
if estado_dir == 1 and prev_boton_direccion == 0:
if modo == 1 or modo == 2:
direccion_normal = not direccion_normal
modo = 1 if direccion_normal else 2
sleep(0.25)
prev_boton_modo = estado_modo
prev_boton_direccion = estado_dir
# Modo 1: Secuencia normal
if modo == 1:
led1.value(1)
sleep(0.3)
led1.value(0)
led2.value(1)
sleep(0.3)
led2.value(0)
led3.value(1)
sleep(0.3)
led3.value(0)
# Modo 2: Secuencia inversa + parpadeo central
elif modo == 2:
led3.value(1)
sleep(0.3)
led3.value(0)
led2.value(1)
sleep(0.3)
led2.value(0)
led1.value(1)
sleep(0.3)
led1.value(0)
led1.value(0)
led3.value(0)
led2.value(1 - led2.value()) # reemplazo del toggle
sleep(0.5)
# Modo 3: Parpadeo alternado
elif modo == 3:
led1.value(1 - led1.value())
sleep(0.2)
led2.value(1 - led2.value())
sleep(0.2)
led3.value(1 - led3.value())
sleep(0.2)
# Modo 4: Todos encendidos y apagados
elif modo == 4:
led1.value(1)
led2.value(1)
led3.value(1)
sleep(0.5)
led1.value(0)
led2.value(0)
led3.value(0)
sleep(0.5)