Estos contenidos prácticos complementan la parte teórica de los temas 4. Fundamentos de la computación física, 5. Internet de las cosas y 6. Robótica del currículo de Computación y Robótica de 1º ESO.
Tabla de contenidos
- 1. Objetivo
- 2. ¿Qué significan las siglas RGB?
- 3. El LED RGB
- 4. Programación de un LED RGB
- 5. Demuestra lo que sabes
1. Objetivo
🛠 Materiales:
- 1 x Placa Microbit.
- 1 x LED RGB. Opción 1 – Opción 2
- 4 x Cables de cocodrilo.
- 4 x Cables Dupont macho-hembra.
En esta práctica aprendimos cómo podíamos encender y apagar un LED del color que habíamos elegido: rojo, verde o amarillo.
Pero existe un tipo especial de LED que nos permite encenderlo y hacer que brille con la luz que nosotros queramos: el LED RGB.
2. ¿Qué significan las siglas RGB?
R: Red -Rojo-
G: Green -Verde-
B: Blue -Azul-
Esto quiere decir que, podemos crear cualquier color que queramos realizando una mezcla de esos tres colores.

Además, no debes perder de vista que, estamos trabajando con luz, con lo cual cada uno de esos tres canales (rojo, verde y azul) pueden tener diferentes intensidades. Por ejemplo, tomando el canal del rojo:
Rojo al 25% | Rojo al 50% | Rojo al 75% | Rojo al 100% |
De la misma manera podemos hacer con el verde y el azul.
Concretamente, de cada canal, tenemos 256 posibles valores, que varían del 0 al 255.
Así, podemos abrir un configurador de color como este: Google Color Picker, y utilizar sus valores RGB para construir colores:

Como ves, el naranja de aquí arriba, se ha construido aportando a la mezcla 255 de rojo (el máximo), 128 de verde (la mitad) y 0 de azul (nada).
Así, variando la cantidad de cada canal, puedes obtener el color que quieras. O también, a la inversa, podrías utilizar el selector de color y observar los valores RGB para ver qué cantidad de rojo, verde y azul te llevan a ese color.
3. El LED RGB
Sabiendo todo lo anterior, ya tienes la base suficiente para poder programar este LED RGB:

Si te fijas bien, ese LED tiene 4 patillas. Tres de ellas te indican qué canal RGB representan, y la cuarta es la que conectamos a tierra.

Bueno, nuestro circuito está terminado.
4. Programación de un LED RGB
Ahora veamos cómo podemos hacer para que al encenderse la placa, nuestro LED emita un color RGB aleatorio.
Elegir un color aleatorio supone, mezclar una cantidad aleatoria de rojo, una cantidad aleatoria de verde y una cantidad aleatoria de azul.
Y como el LED tiene una patilla para el rojo, otra para el verde y otra para el azul, nuestro problema se reduce a enviar una señal eléctrica al pin que hemos conectado la patilla roja (pin 0 en nuestro dibujo), otra señal al pin que hemos conectado la patilla del verde (pin 1 en nuestro dibujo) y otra señal al pin que hemos conectado la patilla del azul (pin 2 en nuestro dibujo).
⚠️ Pero aquí surge un gran problema.
Cada canal de color puede variar entre 0 y 255, pero nuestro bloque de escritura digital -el que conocíamos de la práctica anterior-, sólo nos permite meter dos valores 0 o 1.

¿Qué hacemos?
No podemos usar un bloque de escritura digital. Tenemos que usar un bloque de escritura analógica.
⚠️ Y aquí surge nuestro segundo problema: el bloque de escritura analógica puede recibir 1024 valores -del 0 al 1023-, pero ¡yo necesito 256 valores -del 0 al 255-!

¿Cómo podemos resolver esto?
Para estos casos, Makecode nos ofrece un bloque llamado MAP, que se encarga de cambiar de escala de valores.
Espera, espera, ¿qué significa eso?
Significa que nos permite convertir un rango de valores de 0 a 1023, a otro de 0 a 255.
Para que lo entiendas: supongamos que estamos organizando un viaje y tenemos que meter a 100 personas en 5 autobuses. Las tenemos que meter de forma aleatoria porque todas quieren ir en el mismo autobús. Metemos en una caja 100 papeletas -del 1 al 100- y les decimos a cada una que coja una papeleta. Si sacan una papeleta entre el 1 y el 25, irán en el primer autobús; si sacan una papeleta entre el 26 y el 40, irán en el segundo autobús; y así sucesivamente hasta que se completen los 5 autobuses:

En Makecode esto se haría así:

En nuestro caso, lo que queremos es meter a 1024 personas en 256 autobuses, es decir, cambiar una escala que va de 0 a 1023, a otra de va de 0 a 255.
Así que, a cada canal de color – a cada pin- debemos enviar:

Si hacemos esto con cada canal, nuestro programa quedaría:

De esta manera, tenemos una lámpara inteligente que va cambiando aleatoriamente de color cada medio segundo.
Si además al LED lo metemos en una pelota de ping-pong 🏓, el efecto es aún más bonito❤️:
Pruébalo y asegúrate de que funciona. Si no entiendes algo, pregunta al profesor.
5. Demuestra lo que sabes
Ahora que ya sabes cómo funcionan los LED RGB usando una placa Micro:bit, te propongo el siguiente desafío 👉 modifica el código de tu circuito para que el LED muestre -durante 3s- estos colores cuando se pulsen los siguientes botones.
Al pulsar el botón A | Al pulsar el botón B | Al pulsar los botones A+B |
Las tonalidades pueden ser aproximadas (puedes apoyarte en la herramienta que vimos al principio para descubrir la cantidad de cada canal necesaria para llegar a esos colores).