Tarea
El objetivo de este ejercicio es crear una simulación en el mundo digital (pantalla del ordenador mediante S4A) y en el mundo físico (mediante los elementos electrónicos y Arduino) de un elemento que muestra un color aleatorio. En este caso usaremos un LED RGB que nos permitirá mostrar todo el espectro de colores.
Material necesario
Nombre | Imagen | Descripción |
Placa Arduino Uno | ![]() |
Placa Arduino Uno (o cualquier otra versión) con el firmware necesario para poder usar S4A (descargar firmware) cargado en la placa. |
Protoboard, breadboard o placa de conexiones | ![]() |
Placa de conexiones o protoboard que usaremos en el montaje de circuitos eléctrico-electrónico para ahorrar y simplificar el cableado. Para aprender algo más sobre el uso de este dispositivo pulsa aquí |
1 diodo LED RGB (cátodo común) |
![]() |
Hasta ahora hemos usado varias combinaciones de LEDS, pero siempre de un color definido. Habitualmente los rojos y amarillos son los más fáciles de conseguir, pero se pueden comprar también en tonos azules, verdes y hasta blancos. No suele haber grandes diferencias entre ellos excepto en el color. Pero a veces es interesante disponer de una luz piloto que cambie de color según las condiciones. Por ejemplo, todos identificamos el verde como una señal de OK, mientras que el rojo indica problemas y el amarillo… bueno pues algo intermedio. Poner varios diodos para hacer esto es engorroso y complica el diseño, así que estaría bien disponer de un diodo al que podamos indicar que color queremos que muestre. Esto es un LED RGB (más información) |
3 resistencias de 220 Ohmios |
La resistencia de 220 ohmios se usa para impedir que los LED reciban demasiada intensidad (debida a su baja resistencia interna) y puedan funcionar de manera incorrecta o sobrecalentarse y dejar de ser operativos. |
|
Cables de conexiones entre los componentes, la placa de pruebas y Arduino | ![]() |
Estos cables nos permiten conectar de manera sencilla todos los elementos del circuito. |
Circuito eléctrico
En la artículos anteriores (Proyecto 1: Semáforo de colores) vimos cómo conectar correctamente 3 LED (rojo, verde y amarillo) para crear un semáforo. Ahora vamos a usar un único LED RGB que nos mostrará todos los colores que deseemos del espectro de colores.
Comportamiento digital
Si hemos entendido el circuito con 3 LED es fácil entender también este circuito ya que trabajaremos en modo digital, es decir, solo podremos imponer el valor encendido/apagado a cada uno de los componentes (R-> RED, G->GREEN y B -> BLUE) por lo que solo podremos obtener los siguientes colores:
- Rojo: cuando el componente R esté encendido y los otros dos apagados.
- Verde: cuando el componente G esté encendido y los otros dos apagados.
- Azul: cuando el componente B esté encendido y los otros dos apagados.
- Amarillo: cuando los componentes R y G estén encendidos y el B apagado.
- Morado/rosa: cuando los componentes R y B estén encendidos y el G apagado.
- Azul celeste: cuando los componentes G y B estén encendidos y el R apagado.
Solo debe ser tenido en cuenta que al tratarse de un LED RGB de cátodo común la patilla más larga del mismo debe conectarse al negativo de la placa (Tierra o GND) a través de una resistencia, mientras que cada una de las otras patillas (ver imagen inferior) correspondientes a cada uno de los colores se conectarán en los pines PWM que, nos permitirán, controlar el LED RGB tanto de manera digital (como en este ejemplo) como de manera analógica (ejemplo posterior). En nuestro caso conectaremos la patilla roja del RGB (R) al pin PWM 6, la patilla verde del RGB (G) al pin PWM 5 y la patilla azul del RGB (B) al pin PWM 3 tras y como muestra la imagen.
Comportamiento analógico
Si queremos trabajar en modo analógico, es decir,si queremos controlar las tonalidades entre los posibles valores de 0-255 de cada uno de los colores RGB debemos trabajar en modo analógico usando los pines PWM de Arduino que nos servirán para generar salidas analógicas. De esta manera, dando valores concretos a cada uno de los tonos podremos conseguir que el LED RGB brille en cualquiera de las tonalidades imaginables que se muestran en el siguiente esquema de colores:
Código mBlock
Código mBlock
Como ya sabemos para poder usar mBlock con nuestra placa Arduino debemos siempre actualizar sobre la placa un firmware que nos permita la interacción entre mBlock y nuestro controlador Arduino. Para una descripción detallada de los pasos de conexión sigue este enlace...
Una vez que hayamos conseguido que el entorno mBlock reconozca nuestra placa debemos cumplir nuestro reto haciendo uso de la programación en mBlock y generar un nuevo fichero que cumplirá las diferentes funciones del programa. Como vamos a trabajar de forma digital y analógica con el LED crearemos 2 diferentes programas que llamaremos "RGBDigital.sb2" y "RGBAnalogico.sb2" respectivamente. En dichos programas cambiaremos los colores del LED cada 5 segundos siguiendo la siguiente secuencia: en el primer caso (digital) cambiaremos ROJO (R) - VERDE (G) - AZUL (B) - AMARILLO - MORADO (ROSA) - AZUL CELESTE mientras que en el segundo (analógico) realizaremos una secuencia similar pero con tonos intermedios. En las siguientes imágenes se muestran con comentarios cada uno de los desarrollos: