L5: El LED RGB
Categorías:
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.
Si un canal no se enciende cuando debería, no significa necesariamente que el programa esté mal. En un LED RGB es muy importante identificar bien cuál es la pata común y cuál corresponde a cada color.
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:
| Rojo | Verde | Azul | Color aproximado |
|---|---|---|---|
| ON | OFF | OFF | Rojo |
| OFF | ON | OFF | Verde |
| OFF | OFF | ON | Azul |
| ON | ON | OFF | Amarillo |
| ON | OFF | ON | Magenta |
| OFF | ON | ON | Cian |
| ON | ON | ON | Blanco |
| OFF | OFF | OFF | Apagado |
En la práctica, el color final depende del LED RGB, de la intensidad de cada canal y de la luz de la habitación. No pasa nada si el color no se ve exactamente igual que en la tabla. Lo importante es observar cómo cambia al combinar los canales.
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:
| Canal | Pin GPIO |
|---|---|
| Rojo | GPIO4 |
| Verde | GPIO16 |
| Azul | GPIO17 |
| Común | GND |

Esquema electrónico

Conexión de los componentes en la placa de prototipos
Paso a paso
- Coloca la placa de desarrollo ESP32 sobre la placa de expansión BatSTEM.
- Conecta un cable negro entre el conector GND de la placa de expansión y la línea azul de la placa de prototipos.
- Coloca el LED RGB en la placa de prototipos de manera que sus patas no queden todas en la misma línea eléctrica.
- 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.
- Conecta la pata común a la línea azul de GND.
- Conecta el canal rojo al pin GPIO4 usando una resistencia de 100 Ohm en serie.
- Conecta el canal verde al pin GPIO16 usando una resistencia de 100 Ohm en serie.
- Conecta el canal azul al pin GPIO17 usando una resistencia de 100 Ohm en serie.
- Revisa que cada canal tenga su propia resistencia.
- Conecta la placa de desarrollo al ordenador con el cable USB.
No conectes los canales rojo, verde y azul directamente a la placa sin resistencia. Cada canal del LED RGB se comporta como un LED independiente y necesita su propia resistencia de protección.
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:

- Rojo durante 1 segundo.
- Verde durante 1 segundo.
- Azul durante 1 segundo.
- Apagado durante 1 segundo.
Paso a paso
- Haz clic en Dispositivos y arrastra un bloque “LED RGB con nombre” al bloque configuración.
- Escribe MiLEDRGB como nombre.
- Selecciona GPIO4 para el canal R.
- Selecciona GPIO16 para el canal G.
- Selecciona GPIO17 para el canal B.
- En el bucle principal, arrastra un bloque “poner LED RGB”.
- Selecciona MiLEDRGB y elige el color rojo en el selector de color.
- Añade una espera de 1 segundo.
- Añade otro bloque “poner LED RGB” con el color verde y otra espera de 1 segundo.
- Añade otro bloque “poner LED RGB” con el color azul y otra espera de 1 segundo.
- 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.
- Ejecuta el sketch y observa cómo cambia el color del LED RGB.
El selector de color es la forma más sencilla de empezar. Por dentro, el bloque convierte ese color en valores para los canales rojo, verde y azul.
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 ver | Rojo | Verde | Azul |
|---|---|---|---|
| Amarillo | 100 | 100 | 0 |
| Magenta | 100 | 0 | 100 |
| Cian | 0 | 100 | 100 |
| Blanco | 100 | 100 | 100 |
Paso a paso
- Mantén el bloque “LED RGB con nombre” en la configuración.
- 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.
- Añade una espera de 1 segundo.
- Añade una secuencia para el color magenta: R 100, G 0, B 100.
- Añade una espera de 1 segundo.
- Añade una secuencia para el color cian: R 0, G 100, B 100.
- Añade una espera de 1 segundo.
- Añade una secuencia para el blanco: R 100, G 100, B 100.
- Añade una espera de 1 segundo.
- 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:
| Rojo | Verde | Azul | Resultado esperado |
|---|---|---|---|
| 100 | 40 | 0 | Naranja |
| 20 | 0 | 100 | Azul violáceo |
| 100 | 20 | 60 | Rosa |
| 20 | 100 | 20 | Verde 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
- Crea una secuencia que muestre estos colores: rojo, amarillo, verde, cian, azul, magenta y blanco.
Puedes usar la tabla de mezclas de la explicación teórica como ayuda.
Crea un color inventado ajustando los valores de rojo, verde y azul. Ponle un nombre.
Haz que el color rojo se transforme poco a poco en color verde.
Una forma sencilla de hacerlo es bajar el rojo por pasos mientras subes el verde: rojo 100/verde 0, rojo 80/verde 20, rojo 60/verde 40…
- 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:
| Color | Rojo | Verde | Azul |
|---|---|---|---|
| Rojo | 100 | 0 | 0 |
| Amarillo | 100 | 100 | 0 |
| Verde | 0 | 100 | 0 |
| Cian | 0 | 100 | 100 |
| Azul | 0 | 0 | 100 |
| Magenta | 100 | 0 | 100 |
| Blanco | 100 | 100 | 100 |
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:
| Paso | Rojo | Verde | Azul |
|---|---|---|---|
| 1 | 100 | 0 | 0 |
| 2 | 80 | 20 | 0 |
| 3 | 60 | 40 | 0 |
| 4 | 40 | 60 | 0 |
| 5 | 20 | 80 | 0 |
| 6 | 0 | 100 | 0 |
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.