Étape 4: Faire que les touches s’allument
La tendance ces jours-ci est d’utiliser des LEDs dans toute nouvelle utilisation, et cela ne fait pas exception. Nous voulions des lumières colorées et nous voulions qu’ils soient contrôlables via un micro-contrôleur. Une enquête rapide sur le marché nous a conduit à la découverte des modules LED RVB individuellement contrôlables qui peuvent être enchaînés ensemble. Le module, que nous avons choisi a 4 LEDs par module, et chaque LED est une LED RGB. Autrement dit : c’est un LED rouge, verte et bleue dans un seul boîtier. Chaque module comporte une puce de conducteur de LED qui fournit une interface numérique simple pour contrôler le module. Il y a 4 entrées pour chaque module :
* Alimentation 12V
* Données (5V TTL)
* Horloge (5V TTL)
* Sol
Chaque module a les mêmes sorties, donc il peut être connecté au module suivant dans la chaîne.
Le fonctionnement de ces modules est intéressant. À une extrémité, il y a des lignes de données et horloge. La couleur de chaque module est spécifiée à l’aide de données RVB 24 bits. Après que 24 bits sont cadencées dans un module, il passe en mode pass-through, et tous les bits suivants sont transférées sur toute la ligne dans le module suivant. Lorsque la ligne d’horloge va inactive pendant une certaine période de temps chaque module rétablit l’état initial où elle acceptera les nouvelles données. En synchronisant des bouts de Nx24 la couleur du N modules led peuvent être commandés.
Pour contrôler les lignes de données et horloge, j’ai utilisé le bus SPI (serial peripheral interconnexion) le microcontrôleur. L’atmega328p a support de matériel bus SPI, alors pour maximiser l’efficacité, j’ai utilisé cette approche plutôt que bit-banged.
Pour le Grand Piano, nous avons décidé d’utiliser 2 modules par clé pour obtenir une sortie assez léger. Qui nous a donné 56 modules au total. Les données a été chronométrées à autour de 4MHz, donc toute la chaîne de LED pris autour de 0.34ms pour le programme d’installation. Une routine d’interruption du service est appelée chaque 17ms donnant un taux de rafraîchissement de 60Hz environ.
La puissance consommée par les modules LED dépend de la couleur affichée. Le pire des cas sont complet blanc (255,255,255). Expérimentalement, qui consomme environ 1,38 W/module. Dans cette application nous avions affaire à environ 8 modules sur à tout moment, donc je n’étais pas inquiet au sujet de maxing courant, mais la consommation électrique peut être un facteur limitatif dans certaines applications.
Ressources :
Adafruit a un bon tutoriel sur la conduite des modules LED RVB.
https://www.Adafruit.com/Products/683
Si vous voulez payer moins cher pour les modules vous pouvez les acheter directement des fournisseurs chinois :
Recherche de « WS2801 LED RGB »
http://www.aliexpress.com/
Grand Piano Firmware. Driver de LED.
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/LED.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/SRC/LED.h