from machine import Pin, ADC, PWM
from time import sleep
# Configura el pin GPIO 35 como entrada analógica para el potenciómetro
pot = ADC(Pin(35))
# Configura la resolución del ADC a 12 bits (0 a 4095)
pot.width(ADC.WIDTH_12BIT)
# Configura el rango de lectura del ADC (0 a 3.3V)
pot.atten(ADC.ATTN_11DB) # Rango completo de 0 a 3.3V
# Configura el pin GPIO 26 como salida PWM para el LED
led = PWM(Pin(26), freq=1000) # Frecuencia de 1 kHz
# Rango de valores del PWM (0 a 1023)
PWM_MIN = 0
PWM_MAX = 1023
while True:
# Lee el valor analógico del potenciómetro (0 a 4095)
valor_pot = pot.read()
# Mapea el valor del potenciómetro al rango del PWM (0 a 1023)
brillo_led = int((valor_pot / 4095) * PWM_MAX)
# Asegura que el valor esté dentro del rango del PWM
brillo_led = max(PWM_MIN, min(brillo_led, PWM_MAX))
# Establece el brillo del LED
led.duty(brillo_led)
# Imprime los valores para depuración
print("Valor potenciómetro:", valor_pot, "Brillo LED:", brillo_led)
# Espera un momento antes de la siguiente lectura
sleep(0.1)