# Luses del auto fantastico, hecho por: José Alberto Rangel Camargo.
from machine import Pin # El "import pin" fue para usar una libreria en especifico sin incluir las demas de la funcion,se hiso por obtimiacion, se puede omitir.
from utime import sleep_ms # El "import sleep_ms, sleep" fue para usar una libreria en especifico sin incluir las demas de la funcion,se hiso por obtimiacion, se puede omitir.
la = Pin(15, Pin.OUT) # 0 cambiar el pin para que funcione
lb = Pin(21, Pin.OUT) # 1 cambiar el pin para que funcione
lc = Pin(4, Pin.OUT) # 2 cambiar el pin para que funcione
ld = Pin(16, Pin.OUT) # 3 cambiar el pin para que funcione
le = Pin(17, Pin.OUT) # 4 cambiar el pin para que funcione
lf = Pin(5, Pin.OUT) # 5 cambiar el pin para que funcione
lg = Pin(18, Pin.OUT) # 6 cambiar el pin para que funcione
lh = Pin(19, Pin.OUT) # 7 cambiar el pin para que funcione
bombillas = [la, lb, lc, ld, le, lf, lg, lh]
# Tiempos: 500 : 0.5 s, 250 : 0.25s, 100 : 0.1s.
# 1. Patrón derecha.
def derecha():
for led in bombillas:
led.on()
sleep_ms(100)
led.off()
# 2. Patrón izquierda.
def izquierda():
for led in bombillas[::-1]:
led.on()
sleep_ms(100)
led.off()
# 3. De afuera hacia adentro.
def afuera_adentro():
for i in range(4): # la i es el índice (posición) que se usa para acceder a un elemento específico de la lista bombillas.
bombillas[i].on()
bombillas[7-i].on()
sleep_ms(100)
bombillas[i].off()
bombillas[7-i].off()
# 4. De adentro hacia afuera.
def adentro_afuera():
for i in range(3, -1, -1):
bombillas[i].on()
bombillas[7-i].on()
sleep_ms(100)
bombillas[i].off()
bombillas[7-i].off()
# 5. Efecto acumulativo
def llenar():
# Encendido acumulativo
for led in bombillas:
led.on()
sleep_ms(100)
sleep_ms(100) # pausa cuando todos están encendidos
# Apagado izquierda → derecha
for led in bombillas:
led.off()
sleep_ms(100)
# 6. Efecto acumulativo: derecha → izquierda
def llenar_reversa():
# Encendido acumulativo derecha → izquierda
for led in bombillas[::-1]:
led.on()
sleep_ms(100)
sleep_ms(100) # pausa cuando todos están encendidos
# Apagado derecha → izquierda
for led in bombillas[::-1]:
led.off()
sleep_ms(100)
# Bucle principal: Aqui se controla los patrones que se muestran, no es lo ideal pero no me complique la vida XD
while True:
derecha()
izquierda()
derecha()
izquierda()
afuera_adentro()
adentro_afuera()
afuera_adentro()
adentro_afuera()
llenar()
llenar_reversa()
llenar()
llenar_reversa()
terminaelbucle() # Eliminar para que funcione bien
#Nota1: Instalar thonny para meter el codigo a la espp32, y para reprogramar a la esp32 ir a: https://espressif.github.io/esptool-js/ y a: https://micropython.org/download/esp32/ para descargar el micropython
#Nota2: La instrucción en Python: for i in range(3, -1, -1):
# usa la función range() con tres parámetros. Cada uno tiene un significado específico.
#La estructura general es:
#range(inicio, fin, paso)
#parámetro qué significa
#inicio (número donde comienza la secuencia)
#fin (número donde se detiene (sin incluirlo))
#paso cuánto aumenta o disminuye cada vez
# 1). El 3 (inicio) en range(3, -1, -1)
# El 3 significa que la variable i empieza en 3.
#range(3, -1, -1)Entonces el primer valor de i será:
#range(3, -1, -1) i = 3
#2). El -1 (límite) en range(3, -1, -1)
#El segundo valor indica dónde parar, pero sin incluir ese número.
#range(3, -1, -1)En este caso el límite es -1.
#range(3, -1, -1)Eso significa que la secuencia se detendrá antes de llegar a -1.
#3). El -1 (paso)en range(3, -1, -1)
#El tercer número es el paso.
#range(3, -1, -1)En este caso el -1 es el paso.
#significa que el número disminuye de uno en uno.
#Es decir: 3 → 2 → 1 → 0
#4). Resultado completo
#for i in range(3, -1, -1):
#produce esta secuencia:
#3
#2
#1
#0
#Nota3:https://www.flux.ai/p es como proteus pero automatizado con IA