from machine import Pin
from utime import sleep, sleep_ms, sleep_us
b1 = Pin(19, Pin.OUT)
b2 = Pin(20, Pin.OUT)
b3 = Pin(21, Pin.OUT)
b4 = Pin(47, Pin.OUT)
b5 = Pin(48, Pin.OUT)
b6 = Pin(45, Pin.OUT)
b7 = Pin(35, Pin.OUT)
b8 = Pin(36, Pin.OUT)
leds = [b1, b2, b3, b4, b5, b6, b7, b8]
def derecha():
for bombillo in leds [::1]:
bombillo.on()
sleep_ms(100)
bombillo.off()
sleep_ms(100)
def izquierda():
for bombillo in leds [::-1]:
bombillo.on()
sleep_ms(100)
bombillo.off()
sleep_ms(100)
def intervalode():
for bombillo in leds [::2]:
bombillo.on()
sleep_ms(100)
bombillo.off()
sleep_ms(100)
def intervaloiz():
for bombillo in leds [::-2]:
bombillo.on()
sleep_ms(100)
bombillo.off()
sleep_ms(100)
def idayvuelta():
for bombillo in leds [::1]:
bombillo.on()
sleep_ms(30)
bombillo.off()
sleep_ms(30)
for bombillo in leds [::-1]:
bombillo.on()
sleep_ms(30)
bombillo.off()
sleep_ms(30)
def mitad_parpadeoiz():
for i in range(5):
for bombillo in leds[:4]:
bombillo.on()
sleep_ms(100)
for bombillo in leds[:4]:
bombillo.off()
sleep_ms(100)
def mitad_parpadeode():
for i in range(5):
for bombillo in leds[4:]:
bombillo.on()
sleep_ms(100)
for bombillo in leds[4:]:
bombillo.off()
sleep_ms(100)
def pares_extremos():
for i in range(5):
for bombillo in (leds[0], leds[1], leds[6], leds[7]):
bombillo.on()
sleep_ms(100)
for bombillo in (leds[0], leds[1], leds[6], leds[7]):
bombillo.off()
sleep_ms(100)
def pares_3_6():
for i in range(5):
for bombillo in (leds[2], leds[5]):
bombillo.on()
sleep_ms(100)
for bombillo in (leds[2], leds[5]):
bombillo.off()
sleep_ms(100)
def pares_4_5():
for i in range(5):
for bombillo in (leds[3], leds[4]):
bombillo.on()
sleep_ms(100)
for bombillo in (leds[3], leds[4]):
bombillo.off()
sleep_ms(100)
def centro_a_extremos():
# Encendido progresivo desde el centro hacia los extremos
pares = [(3, 4), (2, 5), (1, 6), (0, 7)] # Ahora empezamos en el centro
for i in range(len(pares)):
# Enciende el par actual
leds[pares[i][0]].on()
leds[pares[i][1]].on()
sleep_ms(120) # Tiempo que se mantienen encendidos
# Apaga el par anterior (para que parezca movimiento)
if i > 0:
leds[pares[i-1][0]].off()
leds[pares[i-1][1]].off()
sleep_ms(50) # Pausa rápida para dar sensación de desplazamiento
# Apaga el último par
sleep_ms(50)
leds[pares[-1][0]].off()
leds[pares[-1][1]].off()
def extremos_a_centro():
# Encendido progresivo hacia el centro
pares = [(0, 7), (1, 6), (2, 5), (3, 4)]
for i in range(len(pares)):
# Enciende el par actual
leds[pares[i][0]].on()
leds[pares[i][1]].on()
sleep_ms(80) # Tiempo que permanecen encendidos (puedes subir o bajar este valor)
# Apaga el par anterior más rápido
if i > 0:
leds[pares[i-1][0]].off()
leds[pares[i-1][1]].off()
sleep_ms(50) # Espera más corta antes de avanzar al siguiente par
# Apaga el último par rápidamente
sleep_ms(100)
leds[pares[-1][0]].off()
leds[pares[-1][1]].off()
while True:
idayvuelta()
idayvuelta()
idayvuelta()
idayvuelta()
idayvuelta()
idayvuelta()
idayvuelta()
izquierda()
derecha()
izquierda()
derecha()
izquierda()
izquierda()
mitad_parpadeoiz()
mitad_parpadeode()
mitad_parpadeoiz()
mitad_parpadeode()
mitad_parpadeoiz()
mitad_parpadeode()
mitad_parpadeoiz()
mitad_parpadeode()
mitad_parpadeoiz()
mitad_parpadeode()
mitad_parpadeoiz()
mitad_parpadeode()
mitad_parpadeoiz()
pares_extremos()
pares_3_6()
pares_4_5()
centro_a_extremos()
extremos_a_centro()