Aprende a controlar un LED RGB con Arduino

En un capítulo anterior aprendiste a controlar un LED, encendiéndolo o apagándolo, así como variando su intensidad. Sin embargo, si deseas variar el color tendrías que reemplazar el LED por otro. En este capítulo aprenderás a utilizar un LED RGB aprenderás a controlarlo y a elegir el color que tú desees, todo con tu placa Arduino.

¿Qué es un LED RGB?

Un LED (Light Emitting Diode) es un diodo emisor de luz, dispositivo capaz de producir luz cuando circula por él una corriente eléctrica. Típicamente son fabricados para un color en específico, donde el voltaje necesario para alimentarlo variará del color y de la potencia capaz de emitir. Un LED RGB (por sus siglas en inglés, Red, Green, Blue), es capaz de generar colores rojo, verde y azul. Internamente contiene los tres diodos emisores de luz diseñados para emitir los tres colores.

LED RGB.
LED RGB.

El LED RGB, a diferencia de los LEDs normales, contiene cuatro patitas (pines), donde una es para el LED rojo, otra para el verde y otra para el azul. El pin restante, será para una conexión en común con los tres diodos, y podrá ser de dos tipos, ánodo común o cátodo común.

Internamente veríamos lo siguiente:

Conexiones ánodo común y cátodo común de un LED RGB.
Conexiones ánodo común y cátodo común de un LED RGB.

Debes de saber qué tipo de LED RGB estaremos utilizando para elegir correctamente su circuito de conexión.

Una manera simple de conocer el tipo de LED RGB que tienes, es mediante un multímetro digital utilizándolo en su modo de prueba de diodos.

Multímetro digital en modo prueba de diodos.
Multímetro digital en modo prueba de diodos.

Conectaremos la terminal positiva del multímetro a la terminal común del LED RGB, y la terminal negativa del multímetro al pin del extremo.

Conexión del multímetro en prueba de diodos.
Conexión del multímetro en prueba de diodos.

Si la configuración del LED es cátodo común, deberá verse encendida una pequeña luz en el LED, como se muestra a continuación:

Prueba de cátodo común.
Prueba de cátodo común.

¿Cómo utilizar un LED RGB con Arduino?

Vamos a ver cómo utilizar el LED RGB con nuestra placa Arduino UNO. Una vez que tengamos identificado el tipo de LED RGB, procederemos a implementar el siguiente diagrama de conexiones. Para este ejemplo, utilizaremos un LED RGB de cátodo común.

Diagrama de conexiones para un LED RGB.
Diagrama de conexiones para un LED RGB.

Utilizaremos tres pines de la placa Arduino UNO como salidas digitales, donde cada una de ellas irá conectada al respectivo pin del LED RGB.

El código para ejecutar este ejemplo es el siguiente:

Cómo puedes observar, declaramos tres variables de tipo entero para indicar los pines físicos a utilizar, uno para cada color R,G y B. Los declaramos como salidas; y por último, mandamos a encenderlos. Es importante que cambies la combinación, primero enciende un LED y apaga los demás para que vayas observando cada LED interno por separado.

Cuando enciendes los tres canales de colores (R, G y B), deberás obtener como resultado una luz blanca. Quizá sea difícil de apreciar directamente en el LED ya que internamente los colores están separados. Te recomiendo que coloques una hoja de papel encima del LED para que los colores se mezclen y los puedas observar en conjunto.

¿Qué combinaciones de colores puedo utilizar?

En el ejemplo anterior, solo puedes encender o apagar cada uno de los canales R, G y/o B. Sin embargo, como aprendimos en un capítulo anterior, podemos variar la intensidad de un LED, en este caso podríamos variar la intensidad de cada canal de color, aportando mayor o menor intensidad en cada canal por separado.

Si utilizamos una señal PWM para controlar la intensidad de cada color, podremos elegir entre 0 y 255 intensidades para el Rojo, entre 0 y 255 para el Verde y entre 0 y 255 para el Azul.

Si observamos en algún programa de edición de imágenes (por ejemplo, Photoshop) nuestra paleta de colores disponibles podremos observar lo siguiente:

Selector de color en Photoshop
Selector de color en Photoshop

Un recuadro donde podemos elegir nuestro color variando la aportación por canales, un valor para R, otro para G y otro para B. Además en el recuadro superior, podemos observar el color que corresponde la combinación de canales RGB.

Tenemos la opción de generar 256 combinaciones por cada canal. Por lo tanto, tendremos la posibilidad de generar un total de 16,777,216 colores.

Si quieres aprender más sobre el espacio de color RGB, déjame un comentario y le dedicaré un capítulo completo.

Elegir un color específico de un LED RGB con Arduino

Vamos a implementar un programa donde podamos elegir un color específico del LED RGB. Tomaremos como ejemplo el código obtenido desde un programa de edición de imágenes o un generador de códigos RGB como el de esta página: CLICK AQUÍ

Crearemos tres señales PWM para controlar la intensidad de cada canal. El código generado deberá quedar mas o menos así:

Observa que se ha modificado el pin físico donde conectaremos nuestros LEDs, ahora son en los pines que son compatibles con señales PWM.

En la parte inferior puedes observar e ingresar el valor correspondiente al color deseado, deberás cambiar los valores de acuerdo a los obtenidos en el programa de edición.

Por ejemplo si deseas obtener el siguiente color:

Seleccionando un color.
Seleccionando un color.

Deberás elegir la siguiente combinación:

  • R: 19
  • G: 222
  • B: 240

Por lo que deberás sustituir la parte inferior de código de la siguiente manera:

¿Te está gustando este artículo?

Te invito a descargar totalmente gratis la Guía de Inicio en Arduino

Encontrarás mucha información extra, conceptos y sobre todo podrás llevarla contigo en todo momento

Control de un LED RGB con Potenciómetro y Arduino UNO

Para poder elegir de manera externa la intensidad de cada canal de color, utilizaremos tres potenciómetros como lo muestra el siguiente diagrama:

Diagrama para el control de un LED RGB con tres potenciómetros.
Diagrama para el control de un LED RGB con tres potenciómetros.

El código final es el siguiente:

Ahora los potenciómetros te servirán para crear un divisor de voltaje, donde se convertirá de 0-1023 a 0-255, representando la intensidad que el LED RGB puede recibir, generando las mismas 16,777,216 posibles combinaciones.


¿Qué te ha parecido este capítulo? Déjame tus comentarios, dudas y sugerencias. Pronto tendrás proyectos completos utilizando Arduino.

Recuerda visitar nuestras redes sociales

2 pensamientos sobre “Aprende a controlar un LED RGB con Arduino”

  1. HOLA, tengo una pregunta, si el led rgb q manejo es ánodo común, eso afecta la instalación de potenciómetros, existe otro código sutil para hacer funcionar los potenciómetros y calibrar las tonalidades del led?
    gracias por la atencion prestada

    1. Hola Camilo, es una buena pregunta, realmente no te afectaría en la instalación, siempre y cuando sigas agregando la resistencia. La única cuestión con el código es que la salida deberás invertirla, ya que ahora con un 0 el LED encenderá y con 1 se apagará, por lo que si estás utilizando niveles de 0-255, le restes 255 al valor del potenciómetro ya convertido. Por ejemplo: la combinación de intensidades sería (255-rojo,255-verde,255-azul), así obtendrás el inverso de cada uno.
      Cualquier duda sigo al pendiente.
      Saludos!

Deja un comentario