# FUNCIONAMIENTO :CONTROLAR EL COLR DEL LED RGB CON 3 POTENCIÓMETROS
# POTENCIÓMETRO ROJO---> GPIO 26
# POTENCIÓMETRO VERDE---> GPIO 27
# POTENCIÓMETRO AZUL---> GPIO 28
# LED RGB ---> GPIO 
# red = GPIO 10
# green = GPIO 11
# blue = GPIO 12

from machine import Pin, PWM, ADC
from time import sleep
#**************************************************
# CONFIGUARACIÓN SALIDA PWM ROJO en el pin GPIO 13
#  
pin_rojo = Pin(10)
ledrojo = PWM(pin_rojo)
# Configurar la frecuencia PWM (en Hz)
ledrojo.freq(1000)  # Frecuencia de 1000 Hz (1 kHz)
# Configurar el ciclo de trabajo (duty cycle) PWM (entre 0 y 65535)
ledrojo.duty_u16(0)  # Duty cycle del 0%
#*************************************************
#**************************************************
# CONFIGUARACIÓN SALIDA PWM VERDE en el pin GPIO 14
#  
pin_verde = Pin(11)
ledverde = PWM(pin_verde)
# Configurar la frecuencia PWM (en Hz)
ledverde.freq(1000)  # Frecuencia de 1000 Hz (1 kHz)
# Configurar el ciclo de trabajo (duty cycle) PWM (entre 0 y 65535)
ledverde.duty_u16(0)  # Duty cycle del 0%
#*************************************************
#**************************************************
# CONFIGUARACIÓN SALIDA PWM AZUL en el pin GPIO 15
#  
pin_azul = Pin(12)
ledazul = PWM(pin_azul)
# Configurar la frecuencia PWM (en Hz)
ledazul.freq(1000)  # Frecuencia de 1000 Hz (1 kHz)
# Configurar el ciclo de trabajo (duty cycle) PWM (entre 0 y 65535)
ledazul.duty_u16(0)  # Duty cycle del 0%
#*************************************************


# CONFIGUARA ENTRADAS ANALÓGICAS (POTENCIÓMETROS)
# Configurar el pin ADC ROJO (PIN 26)
poterojo = Pin(26)
inrojo = ADC(poterojo)
# ***********************************
# Configurar el pin ADC VERDE (PIN 27)
poteverde = Pin(27)
inverde = ADC(poteverde)
#***********************************
# Configurar el pin ADC ROJO (PIN 28)
poteazul = Pin(28)
inazul = ADC(poteazul)
#************************************************************

# Bucle principal para cambiar el duty cycle con el tiempo
while True:
    valor_rojo = inrojo.read_u16()  # Lee ROJO un valor de 0 a 65535
    ledrojo.duty_u16(int(valor_rojo)) # Varía la intensidad del LED
    print(valor_rojo) # Imprime de 0 a 65535

    valor_verde = inverde.read_u16()  # Lee VERDE un valor de 0 a 65535
    ledverde.duty_u16(int(valor_verde)) # Varía la intensidad del LED
    print(valor_verde) # Imprime de 0 a 65535

    valor_azul = inazul.read_u16()  # Lee AZUL un valor de 0 a 65535
    ledazul.duty_u16(valor_azul) # Varía la intensidad del LED
    print(valor_azul) # Imprime de 0 a 65535

    sleep(.1)  
    


#*****************************************************************
#******************************************************************
"""
from machine import Pin, PWM,ADC
from time import sleep

# CONFIGUARACIÓN SALIDA PWM PIN 16
# Configurar la salida PWM en el pin GPIO 16
pwm_pin = Pin(16)
pwm = PWM(pwm_pin)

# Configurar la frecuencia PWM (en Hz)
pwm.freq(1000)  # Frecuencia de 1000 Hz (1 kHz)

# Configurar el ciclo de trabajo (duty cycle) PWM (entre 0 y 65535)
pwm.duty_u16(0)  # Duty cycle del 0%


# CONFIGUARA ENTRADA ANALÓGICA PIN26 (POTENCIÓMETRO)
# Configurar el pin ADC
adc_pin = Pin(26)
adc = ADC(adc_pin)





# Bucle principal para cambiar el duty cycle con el tiempo
while True:
    adc_value = adc.read_u16()  # Lee un valor de 0 a 65535
    pwm.duty_u16(int(adc_value)) # Varía la intensidad del LED
    print(adc_value) # Imprime de 0 a 65535
    sleep(.1)  
    
 """       


Loading
pi-pico-w