############################
# E003_ARRAY_LED.PY: Activa un array de 10 LED
# ENTRADAS: GPIO y tiempo de activación
# SALIDAS: Niveles en GPIO
############################
import machine # Control del GPIO
import time # Gestión de tiempos de activación
import random # Creación de números aleatorios
# Define pines GPIO conectados a los LED en orden bajo...alto
# De 15,2 rojos, 0,4,16 amarillos, resto verdes (por hardware)
pines = [15, 2, 0, 4, 16, 17, 5, 18, 19, 21] # Lista de pines
tiempo = .1 # Tiempo de activación de cada LED
# Configura, en bucle, los pines GPIO como salidas
leds = [machine.Pin(pin, machine.Pin.OUT) for pin in pines]
# Apagar todos los LEDs
for led in leds:
led.off()
# Función para encender los LED hasta un nivel dado
def encender_nivel(nivel):
for i, pin in enumerate(pines): # Recorre lista pines[]
if i < nivel: # Si está por debajo lo enciende
leds[i].on()
else: # Si está por encima lo apaga
leds[i].off()
# Simula el crecimiento lineal de un nivel
def lineal():
for nivel in range(10): # Número de LED del array
encender_nivel(nivel+1)
time.sleep(tiempo) # Ajusta el tiempo de espera
# Simula un nivel de audio
def audio():
nivel = random.randint(0, 10) # Selecciona un nivel aleatorio
encender_nivel(nivel)
time.sleep(tiempo) # Espera un tiempo
# Llama a la función para simular el crecimiento de nivel
print('SIMULACIÓN NIVEL ARRAY 10 LED')
try:
lineal()
while True:
audio()
except KeyboardInterrupt:
print('Terminado...')
for led in leds:
led.off()
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4