import machine
import time
# Definir los pines GPIO para los LEDs
led_pins = [18, 19, 21, 22, 23] # Puedes cambiar estos pines según tu configuración
# Configurar el pin del primer potenciómetro ADC
potentiometer1_pin = machine.Pin(2)
# Configurar el pin del segundo potenciómetro ADC
potentiometer2_pin = machine.Pin(4)
# Crear objetos para los LEDs y establecer su intensidad inicial en 0
leds = [machine.PWM(machine.Pin(pin), freq=1000, duty=0) for pin in led_pins]
# Configurar los ADC para leer el valor de los potenciómetros
adc1 = machine.ADC(potentiometer1_pin)
adc2 = machine.ADC(potentiometer2_pin)
# Función para encender o apagar los LEDs con el primer potenciómetro
def set_leds(value):
num_leds = int(value / 683) # Divide el rango analógico (0-4095) en 5 partes (5 LEDs * 820)
for i, led in enumerate(leds):
if i < num_leds:
led.duty(1023) # Enciende el LED al máximo
else:
led.duty(0) # Apaga el LED
# Bucle principal
while True:
potentiometer_value1 = adc1.read() # Lee el valor analógico del primer potenciómetro
potentiometer_value2 = adc2.read() # Lee el valor analógico del segundo potenciómetro
set_leds(potentiometer_value1) # Enciende o apaga los LEDs según el primer potenciómetro
# Ajusta la luminosidad solo de los LEDs encendidos por el primer potenciómetro
for i, led in enumerate(leds):
if i < int(potentiometer_value1 / 682):
brightness = int(potentiometer_value2 / 5) # Escala el valor analógico (0-4095) al rango de duty cycle (0-1023)
led.duty(brightness)
time.sleep(0.1) # Espera un breve período para evitar cambios rápidos en la visualización de la luminosidad de los LEDs