// Pines de los LEDs
const int pinLEDR = 13; // GPIO13
const int pinLEDG = 12; // GPIO12
const int pinLEDB = 14; // GPIO14
// Pines de los potenciómetros (entradas analógicas)
const int pinPotenciometroR = 34; // Pin analógico para el color rojo
const int pinPotenciometroG = 35; // Pin analógico para el color verde
const int pinPotenciometroB = 32; // Pin analógico para el color azul
// Configuración de las propiedades de PWM
const int frecuencia = 5000;
const int resolucion = 8;
// Variables para almacenar los valores del ciclo de trabajo
int cicloLEDR = 0;
int cicloLEDG = 0;
int cicloLEDB = 0;
const int canalLEDR =0; // 0 -->15
const int canalLEDG =1;
const int canalLEDB =2;
void setup() {
pinMode(pinLEDR, OUTPUT);
pinMode(pinLEDG, OUTPUT);
pinMode(pinLEDB, OUTPUT);
// Configurar las funcionalidades de PWM para los LEDs
ledcSetup(canalLEDR, frecuencia, resolucion);
ledcSetup(canalLEDG, frecuencia, resolucion);
ledcSetup(canalLEDB, frecuencia, resolucion);
// Asociar el canal a los pines GPIO que controlarán los LEDs
ledcAttachPin(pinLEDR, canalLEDR);
ledcAttachPin(pinLEDG, canalLEDG);
ledcAttachPin(pinLEDB, canalLEDB);
}
void loop() {
// Leer los valores de los potenciómetros (lecturas analógicas)
int valorPotenciometroR = analogRead(pinPotenciometroR);
int valorPotenciometroG = analogRead(pinPotenciometroG);
int valorPotenciometroB = analogRead(pinPotenciometroB);
// Mapear los valores de los potenciómetros (0-1023) al ciclo de trabajo
/// para cada color 12bits
cicloLEDR = map(valorPotenciometroR, 0, 4095, 0, 255);
cicloLEDG = map(valorPotenciometroG, 0, 4095, 0, 255);
cicloLEDB = map(valorPotenciometroB, 0, 4095, 0, 255);
// Aplicar los ciclos de trabajo a los LEDs
ledcWrite(canalLEDR, cicloLEDR); // Rojo
ledcWrite(canalLEDG, cicloLEDG); // Verde
ledcWrite(canalLEDB, cicloLEDB); // Azul
delay(15); // Pequeña pausa
}