Hack Ikéa : éclairage à led adressables pour Kallax ou Expedit
Le but de cette réalisation est d’éclairer chaque case d’un meuble kallax (ou expedit) d’ikéa, indépendamment les unes des autres. Pour celà, on va utiliser des modules adressables de 4 LED RGB. Le tout est contrôlé via un module sans fil.
Les matériaux utilisé :
- un kallax de 8 cases transformé
- deux kallax de 4 cases
- 18 modules 35x35mm de 4 LED RGB 5050 à base de WS2801 (achetés sur AliExpress)
- une bonne longueur de câble 4 conducteurs 22AWG pour strip led
- des fixations à visser pour strip led (pour fixer l’arrivée des câbles)
- des goulottes pour cables électrique
- des vis
Matériel utilisé :
- Pistolet à colle
- Fer à souder
- Pince à dénuder
- Visseuse
- Scie de voleur
Les Modules LED WS2801
Le WS2801 est un circuit intégré qui permet de gérer 3 canaux en courant constant jusqu’à 30mA avec une modulation PWM. Il dispose de deux entrée : une entrée horloge sur laquelle on envoie un signal carré qui rythmera le signal reçu sur l’entrée data.
Il ya également deux sortie (horloge et data) qui recopie les signaux d’entrée une fois que le module à reçu les informations le concernant. Les moudules se câblent en série les uns à la suite des autres.
En prenant l’exemple de 3 modules en série :
- Signal de départ : horloge et data sont au niveau bas au moins 500µs.
- On envoie 3x8bits (rouge, vert bleu) pour la couleur du premier module, maintenant qu’il a reçu ses informations, tout ce qu’il recevra sera ignoré (jusqu’au prochain signal de départ) et répété vers le 2ème module.
- On envoie 3x8bits (rouge, vert bleu) pour la couleur du deuxième module, qui maintenant va ignorer et répéter vers le 3ème module.
- On envoie 3x8bits (rouge, vert bleu) pour la couleur du troisème module.
Et ainsi de suite, si on ajoute des modules à la suite.
Réalisation
Câblage
Les modules sont d’abord collés au pistolet en haut de chaque case (deux modules pour les cases doubles). Ils sont ensuite câblés en série avec les fils cachés dans des goulottes qui courent horizontalement sur la tranche arrière des étagères, et verticalement a une extrémité pour relier la ligne du bas à la ligne du haut.
Le circuit de contrôle
Le circuit est conçu pour fonctionner sur un ATMega328p mais peut être adapté pour fonctionner sur un arduino (mini ou nano par exemple).
Le bus SPI étant déjà utilisé par le module radio NRF24L01+ on va utiliser le mode SPI de l’UART pour piloter les modules. Pourquoi ne pas mettre les deux sur le bus SPI avec deux sortie CS (Chip Select) ? Et bien car le WS2801 n’a pas cette fonctionnalité, donc il recevrait les infos destinées à la puce radio et afficherait des choses bizarres.
Le pilotage est assez simple, on boucle sur le tableau contenant les couleurs pour les envoyer une à une, si on rajoute des LED, attention à ce que la vitesse de rafraîchissement permette bien la mise à jour de l’ensemble des LED, on pourra soit augmenter la vitesse d’émission en modifiant UBRR0 ou bien diminuer la vitesse du timer avec le registre TCCR1B.
Edit : Le firmware peut être réécrit en utilisant la librairie Arduino FastLed