Los Leds RGB no son nuevos, pero su abaratamiento en los últimos años ha contribuido a su popularización en una amplia variedad de aplicaciones de señalización, iluminación y decoración, entre otras. Están disponibles en distintos formatos, desde el tradicional encapsulado en 5 mm a tiras de varios metros, según nuestras necesidades. En este artículo veremos una forma sencilla de controlarlos empleando una placa Arduino.



El led RGB es un tipo especial de LED que tiene la capacidad de generar luz de cualquier color. El truco empleado para lograrlo es utilizar en realidad no uno sino RGBtres leds dentro del mismo encapsulado, de cada uno de los tres colores primarios: rojo (Red), verde (Green) y azul (Blue). Si se controla adecuadamente la cantidad de corriente que se suministra a cada led, se puede controlar la componente de luz de cada uno de estos tres colores y combinarlos para lograr el color que se desee.

Estos tres leds no tienen todos sus pines disponibles, sino que se conectan juntos todos los ánodos o todos los cátodos, dando lugar a dos tipos de leds RGB: ánodo común y cátodo común. El conexionado interno es el que muestra la siguiente imagen:

Anodo y catodo

Como cualquier led, para encenderlo debemos polarizarlo en forma directa, esto es conectando el ánodo a una tensión mas positiva que el cátodo. La disposición de los cuatro pines es la misma en los dos tipos de diodos, siendo el mas largo siempre el terminal común (ánodo o cátodo, según el caso).

Pines

Para nuestro proyecto vamos a emplear los siguientes materiales: una placa Arduino UNO, un Prototype Shield (aunque tambien sirve una placa protoboard común), tres resistencias de 1K para limitar la corriente, cables de conexión y por supuesto nuestro led RGB.

Materiales led RGB

Primero probamos el Led en forma manual, sin controlarlo desde Arduino, como se vé en este video

 Luego conectamos el LED a la placa Arduino, empleando las salidas 9, 10 y 11 que pueden ser usadas como salidas tanto digitales como analógicas.

Circuito

El programa, que se puede descargar aquí es muy simple.

LED_RGB_Digital

En las primeras líneas se definen tres constantes tipo byte que se corresponden con los tres pines utilizados: 9, 10 y 11. Esto se hace sólo a los fines de lograr una mayor claridad en el código.

A continuación, en la función setup se configuran esos tres pines como salidas y se los deja en nivel alto (HIGH) para que al comenzar el led RGB esté completamente apagado (recuerden que al ser ánodo común, enciende cuando los cátodos se conectan a GND o a un estado LOW).

Finalmente, en la función loop, que se repite indefinidamente, hay tres bloques de código para prender el led en colores Rojo, Verde y Azul respectivamente poniendo a LOW la salida correspondiente durante un tiempo de 1 segundo (1000 mili segundos).

En el video puede verse el programa en funcionamiento

Esta otra versión es similar, sólo que implementa una función llamada “RGB_Led” que tiene un parámetro que permite indicar en qué color hay que prender el led (Rojo, Verde o Azul) o si se debe apagar.

Con la misma conexión se puede controlar al led usando las salidas en modo PWM. En este caso, el led se excita con una señal cuadrada de ciclo de trabajo programable. Como la frecuencia de esta señal es elevada (unos 500 Hz) a los fines prácticos equivale a una tensión analógica variable, lo que nos permite controlar el brillo del led y la componente de cada color, logrando distintas combinaciones.

Este programa funciona de esa forma.

 LED_RGB_PWM1

En setup se inicializan las tres salidas, pero esta vez especificando el ciclo de trabajo del PWM, que se debe fijar entre 0 (mínimo) y 255 (máximo). Para que los leds internos del led RGB queden apagados se fijan los 3 PWM a 255 (recuerden que estas salidas se aplican a los cátodos).

La función RGB_Led acepta tres parámetros: la componente roja, verde y azul. Estos parámetros, que van entre 0 y 255 establecen el ciclo de trabajo de cada una de las salidas. El valor se resta de 255 para que funcionen con la misma lógica que el PWM de Arduino, esto es, 0 es mínimo y 255 es máximo. Si usáramos un led Cátodo común, esto no sería necesario.

LED_RGB_PWM2

En loop se demuestra cómo emplear la función RGB_Led. En los tres primeros casos, se prende el led en sus colores básicos. En el cuarto, se lo apaga. Luego, con los bucles for van cambiando los valores de cada componente, lo que hace que el led pase a través de un gradiente de distintos colores. Esto se puede ver en el video.

Para aquellos que recién se inicien en la programación de Arduino, el entorno Minibloq es una buena forma de comenzar. El siguiente “componente” de Minibloq controla el led a través de las tres salidas programando los tres PWM con valores aleatorios entre 0 y 255 (el bloque del “dado” entrega un valor entre 0 y 100 que se multiplica por 2.5) y luego haciendo un retardo de 100 ms.

Minibloq

 

Espero que se diviertan haciendo sus propias experiencias!

Les comparto este video que les puede servir para sacar algunas ideas