from machine import Pin, ADC, PWM
import time
# Configuración de los pines del LED RGB
pin_led_r = 15
pin_led_g = 2
pin_led_b = 4
# Configuración de los pines ADC para los potenciómetros
pin_pot_r = 32
pin_pot_g = 33
pin_pot_b = 34
# Configuración de los objetos ADC para leer los potenciómetros
adc_r = ADC(Pin(pin_pot_r))
adc_g = ADC(Pin(pin_pot_g))
adc_b = ADC(Pin(pin_pot_b))
# Configuración de los objetos PWM para controlar la intensidad de los LEDs
pwm_r = PWM(Pin(pin_led_r))
pwm_g = PWM(Pin(pin_led_g))
pwm_b = PWM(Pin(pin_led_b))
# Función para mapear los valores de los potenciómetros (0-4095) a valores de PWM (0-1023)
def map_value(value, in_min, in_max, out_min, out_max):
return (value - in_min) * (out_max - out_min) // (in_max - in_min) + out_min
while True:
# Leer los valores de los potenciómetros
pot_value_r = adc_r.read()
pot_value_g = adc_g.read()
pot_value_b = adc_b.read()
# Mapear los valores de los potenciómetros al rango PWM
pwm_value_r = map_value(pot_value_r, 0, 4095, 0, 1023)
pwm_value_g = map_value(pot_value_g, 0, 4095, 0, 1023)
pwm_value_b = map_value(pot_value_b, 0, 4095, 0, 1023)
# Establecer la intensidad PWM para cada canal del LED RGB
pwm_r.duty(pwm_value_r)
pwm_g.duty(pwm_value_g)
pwm_b.duty(pwm_value_b)
# Pequeña pausa para estabilizar las lecturas
time.sleep(0.1)