Paso 4: Hacer que las teclas se iluminan
La tendencia hoy en día es utilizar LEDs en nuevas aplicaciones de iluminación, y esto no es una excepción. Queríamos luces de colores y queríamos ser controlable mediante un micro controlador. Un rápido estudio del mercado nos llevó a descubrir los módulos LED RGB individualmente controlables que pueden ser encadenadas juntas. El módulo que elegimos tiene 4 LEDs por módulo, y cada LED es un LED RGB. Es decir: es un LED rojo, verde y azul en un solo paquete. Cada módulo tiene un chip de controlador de LED que proporciona una sencilla interfaz digital para controlar el módulo. Existen 4 entradas a cada módulo:
* 12V alimentación
* Datos (5 v TTL)
* Reloj (5V TTL)
* Suelo
Cada módulo tiene las mismas salidas por lo que se puede conectar al módulo siguiente en la cadena.
El funcionamiento de estos módulos es interesante. En un extremo hay líneas de datos y reloj. El color de cada módulo se especifica usando 24 bits de datos RGB. Después de 24 bits se registran en un módulo, entra en modo pass-through, y cualquier bits posteriores se transfieren por la línea al siguiente módulo. Cuando la línea de reloj inactiva durante algún tiempo cada módulo vuelve al estado inicial donde aceptará nuevos datos. Por registrar hacia fuera pedacitos de Nx24 el color de N módulos led pueden ser controlados.
Para controlar las líneas de datos y reloj usaba el bus SPI (serial interconexión periférica) el microcontrolador. El atmega328p tiene soporte para hardware bus SPI, usé para maximizar la eficacia de este enfoque en lugar de un poco golpeado.
Para el Piano grande decidimos utilizar 2 módulos por clave para obtener suficiente luz. Nos dio 56 módulos en total. Los datos fue registrados alrededor de 4 MHz, se llevo a toda la cadena de LED alrededor de 0.34ms al programa de instalación. Una rutina de servicio de interrupción se llama cada 17ms dando una tasa de refresco de alrededor de 60Hz.
La potencia consumida por los módulos de LED depende del color que se muestra. El peor de los casos es completo blanco (255,255,255). Experimentalmente consume aproximadamente 1,38 W/módulo. En esta solicitud que nos ocupa alrededor de 8 módulos en cualquier momento, por lo que no estaba preocupado de maxing hacia fuera de la corriente, pero consumo de energía puede ser un factor limitante en algunas aplicaciones.
Recursos:
Adafruit tiene un buen tutorial en la conducción de los módulos del RGB LED.
https://www.Adafruit.com/products/683
Si quieres pagar menos por los módulos usted puede comprar directamente de proveedores chinos:
Búsqueda para "WS2801 LED RGB"
http://www.aliexpress.com/
Gran Firmware Piano. Conductor del LED.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/LED.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/src/LED.h