Un LED RGB es una fuente de luz compuesta por tres LEDs individuales: rojo (R), verde (G) y azul (B). Cada uno de estos LEDs puede ser controlado de forma independiente para variar la intensidad de la luz que emite, lo que permite generar una amplia variedad de colores mediante la combinación de estos colores primarios en diferentes proporciones.

Los LEDs RGB sean muy versátiles y populares en aplicaciones de iluminación decorativa, pantallas electrónicas, iluminación de escenarios, monitores, y muchos otros dispositivos y aplicaciones.

Partes de un LED RGB

Un LED RGB es la combinación de 3 LEDs (rojo, verde y azul) que comparten un pin común. Ese pin puede ser un cátodo o un ánodo, depende del tipo de LED RGB.

En la siguiente imagen puedes ver las partes de un LED RGB:

led RGB

Te habrás dado cuenta que tiene 4 pines, a diferencia de un LED común que solo tiene 2.

Si se trata de un LED RGB de cátodo común, los pines etiquetados con las letras R, G y B son los ánodos y el marcado como común es el cátodo. Por el contrario, si es un LED RGB de ánodo común, los pines etiquetados como R, G y B son los cátodos y el marcado como común es el ánodo.

Para saber el tipo de LED que estás usando lee siempre las especificaciones.

Por si tienes curiosidad, el LED de la imagen es de cátodo común.

Continuando con los pines, el marcado con R pertenece al LED rojo, el pin G al verde y el B pertenece al azul. Son las siglas en inglés (Red, Green y Blue).

En cuanto al pin que está etiquetado como común, se llama así porque lo comparten los 3 LEDs. Suele ser el pin más largo del LED RGB.

IMPORTANTE: Hay LEDs que tienen una distribución GBR, esto significa que los pines G y B están intercambiados. Por lo demás serían exactamente iguales. En la siguiente imagen puedes ver la distribución de los pines:

LED RGB con distribución GBR

Prueba siempre los colores del LED de forma individual y así te aseguras del tipo de LED que tienes.

Cómo funciona un LED RGB

La combinación de los tres colores básicos (rojo, verde y azul) en diversas proporciones permite crear una amplia gama de colores. Si enciendes solo el LED rojo, pbtendrás luz roja, pero si combinas el LED rojo y el verde obtendrás amarillo.

En la siguiente imagen puedes ver los colores secundarios que puedes obtener al combinar de diferentes formas los 3 colores primarios del LED :

RGB

Cada LED en el LED RGB se puede controlar ajustando su intensidad, que varía desde 0 (apagado) hasta 255 (máxima intensidad). Al variar las intensidades de cada color, podrás lograr una gama de colores mucho más variada. Nada más y nada menos que 16.777.216 combinaciones de colores distintas.

Puedes ver a continuación algunos ejemplos de colores que se pueden obtener al combinar diferentes intensidades:

combinaciones RGB

Si quieres obtener los valores RGB de algún color concreto, te recomiendo esta web: colorhexa.com

Pinchando en el circulo del buscador podrás elegir el color en la paleta y en la parte inferior podrás ver la secuencia RGB.

Voltajes que soporta un LED RGB

Los voltajes que soporta un LED RGB dependen del color indivicual de cada LED.

El LED rojo suele tener un voltaje de funcionamiento de entre 1,8 y 2,2 voltios. El LED verde tiene un voltaje de funcionamiento de entre 2,7 y 3,3 voltios. Y, por último, el LED azul tiene un voltaje de funcionamiento de entre 3,0 y 3,6 voltios.

En la siguiente tabla puedes ver los voltajes de funcionamiento más comunes de los LED RGB:

ColorVoltaje
Rojo (R)1,8V – 2,2V
Verde (G)2,7V – 3,3V
Azul (B)3V – 3,6V

Ten en cuenta que los voltajes de funcionamiento pueden variar según el fabricante y el modelo del LED. Por lo tanto, consulta siempre las especificaciones del LED antes de utilizarlo.

Cómo calcular la resistencia para un LED RGB

Para conectar un LED RGB a una fuente de alimentación necesitas 3 resistencias para limitar la corriente que pasa por el LED. Como ya mencioné inicialmente, un LED RGB está compuesto por 3 LEDs, por lo que necesitamos una resistencia apropiada para cada uno de ellos.

Recuerda que para calcular resistencias siempre tenemos que utilizar la Ley de Ohm. Te dejo a continuación la fórmula ya despejada para el cálculo de resistencias:

R = (Vf – Vled) / Iled

  • R: Resistencia en ohmios
  • Vf: Voltaje de la fuente de alimentación en voltios
  • Vled: Voltaje del LED en voltios
  • Iled: Corriente del LED en amperios

Vamos a suponer que el LED RGB con el que trabajamos tiene las siguientes especificaciones:

  • Rojo (R): 2.2V
  • Verde (G): 3.2V
  • Azul (B): 3.2V
  • Corriente: 20mA (0.02A)

Como vamos a conectar el LED a un Arduino, el voltaje de la fuente de alimentación es de 5V.

Recuerda que tenemos 3 LEDs en uno, así que debemos calcular cada resistencia por separado.

LED rojo

Comencemos por el LED rojo. Aplicando la formula obtenemos lo siguiente:

RR = (5V – 2.2V) / 0.02A

RR = 2.8V / 0.02A

RR = 140 Ω

Simplemente he sustituido cada elemento de la formula por el valor correspondiente.

No olvides que la corriente tiene que estar en amperios, por eso he pasado los 20mA a 0.02A.

LED verde

Ahora es el turno del LED verde. Repetimos el proceso sustituyendo cada elemento de la formula por su valor:

RG = (5V – 3.2V) / 0.02A

RG = 1.8V / 0.02A

RG = 90 Ω

LED azul

Y por último la resistencia para el LED azul:

RB = (5V – 3.2V) / 0.02A

RB = 1.8V / 0.02A

RB = 90 Ω

Una vez hechos los cálculos tenemos que comprobar si la resistencia que hemos obtenido existe, es decir, si hay un valor normalizado para ella. Si no existe tendremos que elegir el valor mas próximo entre los posibles normalizados.

Puedes consultar en el siguiente enlace los valores normalizados de las resistencias: Código de colores de las resistencias.

En el caso de nuestro LED RGB, con los valores que hemos obtenido tras los cálculos, las resistencias normalizadas que tendremos que usar son las siguientes:

RR = 140 Ω –> 150 Ω

RG = 90 Ω –> 100 Ω

RB = 90 Ω –> 100 Ω

Ya tenemos las resistencias necesarias, por lo que podemos conectar el LED RGB sin temor a quemarlo.

Cómo conectar un LED RGB con Arduino

Y aquí viene la parte más divertida. Conectar el LED RGB con nuestro Arduino.

Para hacer la conexión tienes que tener en cuenta si se trata de un LED RGB de ánodo común o de cátodo común. Vamos a ver los dos casos para que tengas ambas opciones.

Conectar LED RGB de ánodo común con Arduino

En el caso del LED RGB de ánodo común las conexiones quedarían de la siguiente forma:

LED RGB ánodo común
Distribución GBR ánodo común

He puesto cada cable del mismo color que el pin al que está conectado. Recuerda que hay modelos en los que el verde y el azul están al revés, pero las conexiones serían exactamente iguales. Solo ten en cuenta en qué pin de Arduino lo conectas para programar bien el scketch.

Como puedes ver, el ánodo va conectado a 5V y los cátodos van conectados a los pines digitales de Arduino con sus correspondientes resistencias (las que calculamos antes).

Ten en cuenta algo muy importante. Los pines digitales del Arduino en los que he realizados las conexiones no están elegidos al azar. Son pines PWM, es decir, pines que soportan la modulación por ancho de pulsos.

Puedes identificar fácilmente los pines PWM de tu Arduino porque tienen este símbolo pintado al lado: ~.

Este tipo de pines nos permiten enviar valores entre 0 y 255 al LED para modificar su intensidad y poder conseguir una mayor gama de colores.

Al tratarse de un LED de ánodo común, el valor más alto enviado al pin digital (255) apagará el LED por completo. Por el contrario, el valor más bajo (0) hará que el LED se ilumine a su máxima potencia.

¿Significa esto que no puedes usar el resto de pines? No, puedes usar el resto de pines digitales, pero el LED brillará de forma muy tenue y no podrás jugar con intensidades. Solo podrás generar los colores primarios y secundarios (Recuerda la imagen de los colores que vimos en el apartado Cómo funciona un LED RGB).

Conectar LED RGB de cátodo común con Arduino

La principal diferencia al conectar un LED RGB de cátodo común con respecto al de ánodo común es que el pin común, en este caso el cátodo, va conectado a tierra (GND).

led rgb cátodo común arduino
LED RGB cátodo común
led rgb distribución gbr cátodo común arduino
Distribución GBR cátodo común

Los otros 3 pines, al igual que ocurría antes, van conectados a pines digitales de Arduino que soportan la modulación por ancho de pulsos (PWM). Igualmente, cada pin lleva conectada su correspondiente resistencia.

En el caso de los LED RGB de cátodo común, el valor más alto (255) enciende el LED a su máxima intensidad y el valor más bajo (0) apaga el LED por completo.

Cómo programar un LED RGB con Arduino

Ahora que ya sabes cómo conectar el LED RGB con Arduino vamos a programar un sketch muy sencillo para que sepas como encender el LED del color que quieras.

Programar LED RGB cátodo común

Vamos a empezar con el LED RGB de cátodo común:

const byte RED = 11;
const byte GREEN = 10;
const byte BLUE = 9;

void setup()
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
}

void loop()
{
  analogWrite(RED, 255);
  analogWrite(GREEN, 0);
  analogWrite(BLUE, 0);
}

Lo primero que he hecho en el sketch es declarar 3 constantes de tipo byte (si prefieres usar int funcionará igual). Cada constante es uno de los pines del Arduino a los que hemos conectado los ánodos del LED. En el pin 11 el ánodo rojo, en el pin 10 el ánodo verde y en el 9 el azul:

const byte RED = 11;
const byte GREEN = 10;
const byte BLUE = 9;

Una vez tenemos las declaraciones tenemos que configurar la placa Arduino. Para eso, como siempre, necesitamos la función setup:

void setup()
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
}

Con la función pinMode configuramos los 3 pines como salida (OUTPUT). Con los LED siempre es así porque enviaremos un pulso que lo encienda o lo apague.

Y por último falta la función loop. En ella haremos que el LED RGB se encienda del color que queramos:

void loop()
{
  analogWrite(RED, 255);
  analogWrite(GREEN, 0);
  analogWrite(BLUE, 0);
}

Te habrás dado cuenta que estoy utilizando la función analogWrite en vez de digitalWrite, a pesar de estar usando pines digitales. Lo hago de esta forma porque el LED está conectado a pines PWM. Como ya comentamos antes, gracias a estos pines, podemos enviar al LED valores comprendidos entre 0 (apagado) y 255 (máxima intensidad).

La función analogWrite, a diferencia de digitalWrite, nos permite aprovechar esa característica de los pines PWM y enviar valores entre 0 y 255.

Como puedes ver en el código, estoy enviando valor 255 al pin rojo y 0 a los otros 2. ¿De qué color crees que se iluminará el LED? Efectivamente, se iluminará de color rojo a máxima intensidad.

Prueba ahora a cambiar el valor de los otros pines, por ejemplo así:

void loop()
{
  analogWrite(RED, 0);
  analogWrite(GREEN, 255);
  analogWrite(BLUE, 0);
}

¿De qué color crees que se iluminará ahora? Exacto, de color verde a máxima intensidad.

También puedes reducir la intensidad, por ejemplo así:

void loop()
{
  analogWrite(RED, 150);
  analogWrite(GREEN, 0);
  analogWrite(BLUE, 0);
}

Al enviar un valor inferior a 255 al pin rojo el LED se iluminará con menor intensidad que antes.

Pero no solo podemos encender el LED con colores primarios ¿Recuerdas? Prueba con otras combinaciones, por ejemplo esta:

void loop()
{
  analogWrite(RED, 165);
  analogWrite(GREEN, 0);
  analogWrite(BLUE, 255);
}

En este caso el LED se iluminará de color morado.

Programar LED RGB ánodo común

¿Qué pasa si el LED RGB es de ánodo común? Pues que los valores que enviamos al LED van al revés. Recuerda, el 0 es la máxima intensidad y el 255 lo apaga por completo.

Teniendo en cuenta esto, ¿De qué color se iluminará el LED si ejecutamos el primer ejemplo?

void loop()
{
  analogWrite(RED, 255);
  analogWrite(GREEN, 0);
  analogWrite(BLUE, 0);
}

Si, es un color secundario. Concretamente es el cyan, porque se iluminan el verde y el azul, mientras que el rojo permanece apagado.

Ahora te toca a ti. Prueba con distintos valores para ver qué colores obtienes.

Videotutorial

Si te quedan dudas mira este videotutorial en el que explico todo paso a paso:


Te avisaré cuando publique nuevo contenido en paraarduino.com y en mi canal de YouTube (@ParaArduino).

No hemos podido validar tu suscripción.
¡Se ha realizado tu suscripción!

Newsletter

Suscríbete para que te avise cuando publique nuevo contenido.

Usamos Brevo como plataforma de marketing. Al hacer clic a continuación para enviar este formulario, consiente que la información proporcionada sea transferida a Brevo para su procesamiento de acuerdo con sus términos de uso