Control de un LED RGB (KY-016) mediante tres potenciómetros y una placa Arduino

La electrónica interactiva ha revolucionado la forma en que interactuamos con la luz y el color. El diseño de sistemas de iluminación dinámicos y personalizables se ha convertido en una disciplina fundamental en campos que van desde la decoración del hogar hasta la escenografía profesional. En este artículo, exploraremos en detalle un proyecto fascinante que combina la versatilidad de Arduino con la modulación de color del LED RGB KY-016 y la interfaz analógica de potenciómetros. El objetivo final es construir una consola intuitiva que permita el control individual y preciso de la intensidad de los colores primarios (Rojo, Verde y Azul) para generar una paleta de más de 16 millones de tonalidades distintas.



🔩Funcionamiento

Este proyecto tiene como finalidad diseñar un sistema que permita el control individual de los colores primarios (rojo, verde y azul) de un LED RGB modelo KY-016, utilizando tres potenciómetros conectados a una placa Arduino. La combinación de estos elementos permite crear un sistema interactivo que explora principios fundamentales de la electrónica y la programación, brindando la posibilidad de generar una amplia gama de colores mediante el ajuste manual de los potenciómetros.

El LED RGB KY-016: Un Universo de Color en Miniatura

El módulo KY-016 es una solución compacta que simplifica el uso de un diodo emisor de luz (LED) tricolor. Internamente, contiene tres pequeños LEDs (uno rojo, uno verde y uno azul) encapsulados. El módulo generalmente es de cátodo común, lo que significa que el pin más largo (o el pin común) se conecta a la tierra GND de la placa, mientras que los pines restantes (R, G, B) se conectan a los pines de salida de Arduino. Una característica muy conveniente de este módulo es que ya incorpora resistencias limitadoras de corriente en serie con cada ánodo de color, protegiendo los LEDs y simplificando el circuito externo.

Modulación por Ancho de Pulso (PWM): La Magia de la Atenuación

Para controlar la intensidad luminosa de cada color del LED y, por ende, la mezcla resultante, es imprescindible utilizar la técnica de Modulación por Ancho de Pulso PWM. Arduino emplea PWM en pines digitales específicos (marcados con el símbolo sim en la mayoría de las placas) para simular una salida analógica.

  • El PWM funciona variando el tiempo que la señal digital permanece en estado ALTO (encendido) dentro de un período fijo.
  • En Arduino, la función clave es analogWrite(), que acepta valores de 0 a 255. Un valor de 0 representa un 0% del ciclo de trabajo (LED apagado) y un valor de 255 representa un 100% del ciclo de trabajo (LED encendido a su máximo brillo). Cualquier valor intermedio genera una intensidad de brillo proporcional.
El Potenciómetro: La Interfaz Analógica

Un potenciómetro es una resistencia variable de tres terminales que actúa como un divisor de voltaje.

  • Los terminales externos se conectan a la alimentación VCC, típicamente 5V en Arduino y a tierra (GND).
  • El terminal central, o limpiaparabrisas (wiper), genera un voltaje de salida que varía linealmente desde 0V hasta 5V a medida que se gira el eje.
  • Este voltaje variable es leído por las entradas analógicas de Arduino A0 a A5. La función analogRead() convierte esta señal de voltaje (que va de 0V a 5V en un valor digital que oscila entre 0 y 1023 (debido a la resolución de 10 bits del conversor ADC de Arduino).

🔨Componentes

ComponenteCantidadEspecificaciónFunción
Placa Arduino1Arduino Uno, Nano, etc.Control de componentes(cerebro)
Potenciómetro310 kΩ x3Cambiar el color del LED RGB
LED1RGB(KY-016)Iluminar
Resistencia3330Ω x3Limitar la corriente
Cables de conexiónnUnir componentes


🔌Conexiones

  • Conexión de los potenciómetros: Los tres potenciómetros se conectan a los pines analógicos de la placa Arduino (por ejemplo, A0, A1 y A2). Cada uno tiene tres terminales: el pin central se conecta al pin analógico, uno de los extremos a 5V y el otro a GND.
  • Conexión del LED RGB: Los pines correspondientes a los colores rojo, verde y azul del LED RGB se conectan a los pines PWM de la placa Arduino (por ejemplo, 9, 10 y 11) a través de resistencias. El pin común (cátodo o ánodo) se conecta a GND o 5V, dependiendo del tipo de LED RGB.

0️⃣Código

La lógica del código reside en leer el valor analógico del potenciómetro (0-1023) y transformarlo al rango de valores PWM(0-255) para controlar la intensidad del color correspondiente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <Arduino.h>

int redPin = 9;    // Pin del color rojo
int greenPin = 10; // Pin del color verde
int bluePin = 11;  // Pin del color azul

int redPot = A0;   // Pin del potenciómetro para el color rojo
int greenPot = A1; // Pin del potenciómetro para el color verde
int bluePot = A2;  // Pin del potenciómetro para el color azul

void setup() {
  // Configura los pines como salidas
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  // Lee los valores de los potenciómetros
  int redValue = analogRead(redPot);
  int greenValue = analogRead(greenPot);
  int blueValue = analogRead(bluePot);
  
  // Convierte los valores de los potenciómetros a un rango de 0 a 255
  redValue = map(redValue, 0, 1023, 0, 255);
  greenValue = map(greenValue, 0, 1023, 0, 255);
  blueValue = map(blueValue, 0, 1023, 0, 255);
  
  // Establece el color del LED RGB
  analogWrite(redPin, redValue);
  analogWrite(greenPin, greenValue);
  analogWrite(bluePin, blueValue);
}


🖌️Diseños


🎬Videos


📑Conclusión

El proyecto de la consola de mezcla de colores es una introducción robusta al control de dispositivos analógicos mediante entradas analógicas. Al usar la función map(), se logra una interfaz de usuario natural e intuitiva, donde el giro físico del potenciómetro se traduce directamente en un cambio perceptible y gradual en la intensidad del color.

La capacidad de generar 16.7 millones de colores con un control manual tan simple es un testimonio del poder de la microelectrónica. Este proyecto es la base perfecta para extensiones más avanzadas, como:

  • Presets de Color: Agregar botones para guardar y cargar combinaciones de color favoritas.
  • Interfaz de Usuario OLED/LCD: Mostrar los valores RGB numéricos (0-255) en una pequeña pantalla para una precisión máxima.
  • Comunicación Inalámbrica: Integrar módulos Bluetooth o Wi-Fi para controlar el LED a distancia, convirtiendo la consola en un controlador maestro.

Este ejercicio no solo enseña la manipulación de PWM y entradas ADC en Arduino, sino que también sirve como una excelente demostración práctica de la teoría del color aditivo, fundamental en la electrónica y la iluminación digital.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito de compra