# -------------------------------------------------------------------------
# Ejercicio 9: Regulador de Luz (Dimmer con Potenciómetro y PWM)
# Objetivo: Controlar el brillo de un LED en tiempo real según un control analógico.
# Conexiones: Potenciómetro en GP26 | LED Verde en GP11 (Resistencia a GND)
# -------------------------------------------------------------------------
from machine import Pin, ADC, PWM
from utime import sleep
# 1. Configuramos el potenciómetro como Entrada Analógica (ADC)
potenciometro = ADC(Pin(26))
# 2. Configuramos el LED como Salida PWM
led_verde = PWM(Pin(11))
led_verde.freq(1000) # Frecuencia alta para evitar parpadeo visible
print("--- REGULADOR DE LUZ ACTIVO ---")
print("Gira la perilla del potenciómetro para cambiar el brillo del LED.")
while True:
# Leemos la posición actual de la perilla (Devuelve un valor de 0 a 65535)
lectura = potenciometro.read_u16()
# Enviamos exactamente ese mismo valor al ciclo de trabajo del LED
led_verde.duty_u16(lectura)
# Muestra por pantalla el porcentaje aproximado para ayudar a los alumnos
porcentaje = int((lectura / 65535) * 100)
print(f"Lectura ADC: {lectura} | Brillo: {porcentaje}%")
# Pequeña pausa para que la lectura sea fluida pero no sature la consola
sleep(0.1)