¿Qué es un LED RGB y cómo se conecta?
Un LED RGB (Red-Green-Blue) es un tipo especial de LED que puede emitir luz de los tres colores primarios: rojo, verde y azul. Este componente electrónico es la base de las pantallas LED que actualmente se emplean en televisiones, ordenadores, teléfonos móviles… Todas estas pantallas están compuestas por miles o incluso millones de diminutos LEDs RGB que en función del color o de la mezcla de colores que emiten, forman una u otra imagen.


Puesto que un LED normal dispone de dos terminales (uno positivo y uno negativo) podrías pensar que un LED RGB debe tener seis terminales (2 x 3). Sin embargo, no es así, un LED RGB dispone de cuatro terminales: tres positivos (uno por cada color) y uno negativo, que es compartido por todos los colores. En la imagen de abajo a la izquierda puedes ver un LED RGB real y a la derecha un esquema que indica a qué terminal corresponde cada color en el simulador que estamos utilizando (aunque en la realidad esto puede cambiar de unos LEDs a otros).

Como hemos dicho antes, este tipo de LED dispone de tres terminales positivos, uno para cada color, por tanto estos deberán conectarse a tres pines diferentes. El terminal restante, el negativo, deberá conectarse a cualquier pin GND. Una posible conexión sería la siguiente:

- El terminal rojo al pin 12.
- El terminal verde al pin 4.
- El terminal azul al pin 2.
Pero los terminales de color se podrían haber conectado a cualquier otro pin siempre y cuando el terminal negativo se conecte a un pin GND. Y recuerda, para encontrar cualquier componente en el simulador de Tinkercad basta con escribir su nombre en el buscador del menú de la derecha.

Por último, para que el componente no se estropee y funcione correctamente, es importante conectar una resistencia que limite la intensidad que circula por el LED. En un LED normal, como ya se ha visto anteriormente, no importa en qué terminal se conecte la resistencia. Sin embargo, el caso de un LED RGB es un poco particular. Las dos posibilidades de abajo serían válidas:

Sin embargo, como puedes imaginarte, la opción de la izquierda es mucho más sencilla y económica, ya que sólo requiere la conexión de una resistencia. La clave está en que el terminal negativo está compartido por los tres colores Por ese motivo, es suficiente conectar una resistencia a ese terminal, pues de esa forma la resistencia está afectando a los tres colores. Por el contario, si se conecta a los terminales de color será neceario conectar una resistencia por cada uno de los colores.
¿Cómo se controla un LED RGB?
Como se ha dicho al principio, el principal uso de los LEDs RGB es en la fabricación de pantallas. Y para conseguir formar una imagen o un vídeo, que no es más que una sucesión de imágenes, es necesario controlar todos y cada uno de los LEDs de la pantalla. Es decir, es necesario indicarle de qué color debe ser la luz que emita para que la imagen obtenida sea la deseada.
Para ello es necesario indicarle la intensidad con la que debe emitir cada uno de los tres tipos de luz que es capaz de generar: roja, verde y azul. En la siguiente imagen se puede ver el resultado de mezclar dos colores de luz:

Además, si se mezclan los tres colores se obtiene luz blanca. De hecho, una pantalla LED completamente blanca se consigue activando todos los colores de todos los LEDs de la pantalla. Por el contrario, una pantalla negra se consigue apagando todos los colores de todos los LEDs.
Las órdenes necesarias para controlar un LED RGB con Arduino son exactamente las mismas que para controlar un LED normal. A continuación vamos a ver algunos ejemplos en los que el LED se ha conectado como en el ejemplo del apartado anterior:
- El terminal rojo al pin 12.
- El terminal verde al pin 4.
- El terminal azul al pin 2.
Ejemplo 1: hacer que el LED RBG parpadee con luz azul cada segundo.
Como se quiere emitir luz azul, que es uno de los colores primarios, bastará con activar el pin del Arduino que se corresponde con el terminal azul del LED, que en este caso es el 4, durante un segundo, y después desactivarlo durante otro segundo:

El programa sería el siguiente:
void setup()
{
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(12, OUTPUT);
}
void loop()
{
digitalWrite(2, LOW);
digitalWrite(4, HIGH);
digitalWrite(12, LOW);
delay(1000);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(12, LOW);
delay(1000);
}
Ejemplo 2: hacer que el LED RBG parpadee con luz amarilla cada dos segundos.
Para conseguir luz amarilla es necesario mezclar luz roja y verde. Por tanto, será necesario activar el pin 2 (rojo) y el 12 (verde), esperar dos segundos, a continuació apagar los tres colores y esperar otros dos segundos:

El programa sería el siguiente:
void setup()
{
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(12, OUTPUT);
}
void loop()
{
digitalWrite(2, HIGH);
digitalWrite(4, LOW);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(12, LOW);
delay(2000);
}
Nota: en realidad, para conseguir todos los colores posibles en una pantalla real no basta con indicar qué colores se activan, sino la intensidad con que debe emitirse cada uno de los tres tipos de luz. Eso es lo que se conoce como código RGB de un color. El código RGB son tres valores entre el 0 y el 255 que indican qué intensidad de cada color de luz es necesaria para generar ese color. Es muy fácil comprobar el funcionamiento de este código por ejemplo en el cuadro de selección de color de un editor de texto (word, por ejemplo):

En el ejemplo 2 la luz amarilla que se ha conseguido mezclando luz roja y verde se correspondería con el código RGB: 255, 255, 0 (rojo y verde al máximo y azul apagado):

Pincha en el botón para acceder a algunos ejercicios relacionados con el control de un led RGB.