L5: El LED RGB

Control del color y la intensidad de un LED RGB.

El LED RGB

Qué vas a aprender en esta lección

En esta lección trabajaremos:

  • Qué es un LED RGB y cómo funciona.
  • Síntesis aditiva del color.
  • Control del color y la intensidad del LED desde la placa de desarrollo.

Requisitos previos

Para poder seguir esta lección debes haber completado previamente la Lección 1: Mi primer proyecto, la Lección 2: El diodo LED, la Lección 3: El diodo LED (2) y la Lección 4: LED de intensidad variable. En esta lección usaremos tres salidas de la placa para controlar los tres colores de un mismo componente.

Explicación teórica

¡Quiero saber más!

¿Qué es un LED RGB?

Un LED RGB es un componente que puede producir distintos colores combinando tres luces básicas:

  • R de red: rojo.
  • G de green: verde.
  • B de blue: azul.

Aunque por fuera parece un único LED, por dentro contiene tres LEDs pequeños: uno rojo, uno verde y uno azul. Cada uno de ellos se llama canal de color. Si controlamos la intensidad de cada canal, podemos crear muchos colores diferentes.

Las cuatro patas del LED RGB

Un LED RGB típico tiene 4 patas:

  • Una pata para el canal rojo.
  • Una pata para el canal verde.
  • Una pata para el canal azul.
  • Una pata común, compartida por los tres canales.

La pata común puede funcionar de dos maneras, según el tipo de LED RGB:

  • Cátodo común: la pata común se conecta a GND.
  • Ánodo común: la pata común se conecta al voltaje positivo.

En esta lección trabajaremos con un LED RGB de cátodo común. Si el LED del kit o del aula fuera de ánodo común, el montaje y el comportamiento de los valores pueden cambiar. El equipo docente indicará qué tipo se está usando.

Síntesis aditiva del color

Cuando mezclamos luces de colores, los colores se suman. A esto se le llama síntesis aditiva. En la síntesis aditiva se utilizan tres colores primarios: rojo, verde y azul (RGB). Estos son los colores de los tres LEDs internos que tiene nuestro LED RGB. A medida que añadimos luz, el resultado es cada vez más claro y, cuando mezclamos los tres colores, obtenemos luz blanca.


Síntesis aditiva de color (Luz)

No funciona igual que mezclar pinturas. Con pintura, si mezclamos muchos colores, normalmente acabamos con un color oscuro. A este tipo de mezcla de color se le denomina síntesis sustractiva y sus colores primarios son el cian, el magenta y el amarillo, los colores que utilizan, por ejemplo, las impresoras.


Síntesis sustractiva de color (Pigmentos)

Algunas combinaciones importantes son:

RojoVerdeAzulColor aproximado
ONOFFOFFRojo
OFFONOFFVerde
OFFOFFONAzul
ONONOFFAmarillo
ONOFFONMagenta
OFFONONCian
ONONONBlanco
OFFOFFOFFApagado

Intensidad en cada canal

En la lección anterior aprendimos que un LED puede recibir valores intermedios, como 20, 50 o 80. En un LED RGB podemos hacer lo mismo con cada canal.

Por ejemplo:

  • Rojo 100, verde 0, azul 0 -> rojo intenso.
  • Rojo 50, verde 0, azul 0 -> rojo más suave.
  • Rojo 100, verde 50, azul 0 -> naranja o amarillo cálido.
  • Rojo 20, verde 20, azul 100 -> azul con algo de luz blanca.

Cada color se puede imaginar como una receta. En lugar de ingredientes como harina o agua, usamos cantidades de rojo, verde y azul.

Parte Práctica

Necesitas los siguientes materiales:

  • Placa de desarrollo ESP32.
  • Placa de expansión BatSTEM.
  • Cable de conexión USB.
  • Placa de prototipos.
  • LED RGB de 4 patas.
  • 3 resistencias de 100 Ohm.
  • Cables de conexión.

Esquema electrónico y diagrama de conexión

Vamos a conectar un LED RGB de cátodo común. Cada canal de color irá conectado a un pin GPIO diferente a través de su propia resistencia de protección. La pata común del LED RGB irá conectada a GND.

Usaremos esta asignación:

CanalPin GPIO
RojoGPIO4
VerdeGPIO16
AzulGPIO17
ComúnGND


Esquema electrónico


Conexión de los componentes en la placa de prototipos

Paso a paso
  1. Coloca la placa de desarrollo ESP32 sobre la placa de expansión BatSTEM.
  2. Conecta un cable negro entre el conector GND de la placa de expansión y la línea azul de la placa de prototipos.
  3. Coloca el LED RGB en la placa de prototipos de manera que sus patas no queden todas en la misma línea eléctrica.
  4. Identifica la pata común del LED RGB. En muchos LEDs RGB es la pata más larga, pero conviene comprobarlo con el diagrama del componente.
  5. Conecta la pata común a la línea azul de GND.
  6. Conecta el canal rojo al pin GPIO4 usando una resistencia de 100 Ohm en serie.
  7. Conecta el canal verde al pin GPIO16 usando una resistencia de 100 Ohm en serie.
  8. Conecta el canal azul al pin GPIO17 usando una resistencia de 100 Ohm en serie.
  9. Revisa que cada canal tenga su propia resistencia.
  10. Conecta la placa de desarrollo al ordenador con el cable USB.

Código

Vamos a controlar el LED RGB con los bloques específicos para este componente. Primero lo definiremos con el bloque “LED RGB con nombre” y después cambiaremos su color con los bloques “poner LED RGB”.

¡Quiero saber más!

Aunque el LED RGB sea un único componente, el bloque de configuración necesita saber a qué pines están conectados sus tres canales: R, G y B. Después podremos controlarlo como un solo dispositivo con nombre.

Si trabajas con un LED RGB de ánodo común, es posible que los valores se comporten al revés: un valor bajo puede encender más el canal y un valor alto puede apagarlo. En esta lección seguiremos el caso de cátodo común para mantener el camino principal sencillo.

Encender colores básicos

Construye y ejecuta un sketch que muestre esta secuencia:

  1. Rojo durante 1 segundo.
  2. Verde durante 1 segundo.
  3. Azul durante 1 segundo.
  4. Apagado durante 1 segundo.
Paso a paso
  1. Haz clic en Dispositivos y arrastra un bloque “LED RGB con nombre” al bloque configuración.
  2. Escribe MiLEDRGB como nombre.
  3. Selecciona GPIO4 para el canal R.
  4. Selecciona GPIO16 para el canal G.
  5. Selecciona GPIO17 para el canal B.
  6. En el bucle principal, arrastra un bloque “poner LED RGB”.
  7. Selecciona MiLEDRGB y elige el color rojo en el selector de color.
  8. Añade una espera de 1 segundo.
  9. Añade otro bloque “poner LED RGB” con el color verde y otra espera de 1 segundo.
  10. Añade otro bloque “poner LED RGB” con el color azul y otra espera de 1 segundo.
  11. Por último, añade un bloque “poner LED RGB” con el color negro y una espera de 1 segundo. El color negro significa que los tres canales están apagados.
  12. Ejecuta el sketch y observa cómo cambia el color del LED RGB.

Mezclar colores

Ahora modifica el sketch para mostrar también colores mezclados. Puedes hacerlo con el selector de color o con el bloque que permite indicar los valores R, G y B por separado.

Color que queremos verRojoVerdeAzul
Amarillo1001000
Magenta1000100
Cian0100100
Blanco100100100
Paso a paso
  1. Mantén el bloque “LED RGB con nombre” en la configuración.
  2. En el bucle principal, añade una secuencia para el color amarillo. Si usas el bloque con valores R/G/B, escribe R 100, G 100, B 0.
  3. Añade una espera de 1 segundo.
  4. Añade una secuencia para el color magenta: R 100, G 0, B 100.
  5. Añade una espera de 1 segundo.
  6. Añade una secuencia para el color cian: R 0, G 100, B 100.
  7. Añade una espera de 1 segundo.
  8. Añade una secuencia para el blanco: R 100, G 100, B 100.
  9. Añade una espera de 1 segundo.
  10. Termina poniendo R 0, G 0, B 0 durante 1 segundo.

Si todo funciona correctamente, verás una secuencia de colores que se repite continuamente.

Crear colores suaves

Por último, prueba valores intermedios. Por ejemplo:

RojoVerdeAzulResultado esperado
100400Naranja
200100Azul violáceo
1002060Rosa
2010020Verde suave

No hace falta que todos los colores salgan perfectos. El objetivo es comprobar que cambiar la intensidad de cada canal cambia el resultado.

Ejercicios adicionales o retos

  1. Crea una secuencia que muestre estos colores: rojo, amarillo, verde, cian, azul, magenta y blanco.
  1. Crea un color inventado ajustando los valores de rojo, verde y azul. Ponle un nombre.

  2. Haz que el color rojo se transforme poco a poco en color verde.

  1. Si tienes dos LEDs RGB, conecta el segundo en otros tres pines GPIO, crea otro bloque “LED RGB con nombre” y diseña una secuencia en la que uno muestre colores cálidos y el otro colores fríos.

Resumen de lo aprendido

  • Hemos aprendido que un LED RGB combina tres canales de color: rojo, verde y azul.
  • Hemos conectado un LED RGB de 4 patas usando una resistencia para cada canal.
  • Hemos visto que la luz se mezcla mediante síntesis aditiva.
  • Hemos creado colores básicos y colores mezclados encendiendo varios canales a la vez.
  • Hemos usado valores intermedios para ajustar la intensidad de cada color.

Próximos pasos

  • Aprende a comunicar la placa con el ordenador usando el puerto serie en la Lección 6.

Soluciones a ejercicios adicionales

Mostrar

Secuencia de siete colores

Una posible secuencia es:

ColorRojoVerdeAzul
Rojo10000
Amarillo1001000
Verde01000
Cian0100100
Azul00100
Magenta1000100
Blanco100100100

Después de cada color podemos añadir una espera de 1 segundo.

Transformar rojo en verde

Para pasar de rojo a verde poco a poco, podemos usar esta tabla:

PasoRojoVerdeAzul
110000
280200
360400
440600
520800
601000

Añade una espera corta entre cada paso para poder ver el cambio.

Dos LEDs RGB

Si tienes dos LEDs RGB, puedes repetir el mismo montaje con otros tres pines GPIO. Por ejemplo:

  • Primer LED RGB: GPIO4, GPIO16 y GPIO17.
  • Segundo LED RGB: otros tres pines GPIO disponibles.

Para crear contraste, el primer LED puede mostrar rojo, amarillo y naranja, mientras el segundo muestra azul, cian y verde.