Bonjour à tous,
Aujourd’hui je vais vous présenter le panneau LED 8x32 RGB WS2812-B et son fonctionnement.
Présentation :
Le panneau LED 8x32 RGB WS2812-B est un panneau de 256 leds RGB adressables organisé en une matrice de 8 leds par 32 leds. Chacune des leds peut être pilotées indépendamment et de n’importe quelle couleur. On peut donc l’utiliser pour afficher des textes en couleurs, des animations etc. …
Matériel nécessaire :
- Une Arduino et son câble USB
- Le panneau LED
- 3 fils de type mâle-mâle
Les schémas de câblage :
Le panneau LED possède 2 prises 3 fils une « input » et une « output » qui ont chacune :
l’alimentation 5V fil rouge ,
La masse (GND ) fil blanc,
et les signaux DIN et DOUT ( Data Input et Data Output) fil vert.
Il faut relier le 5V et GND de l’arduino au 5V et GND du panneau LED et relier DIN du panneau LED à la broche de notre choix, GPIO 6 dans cet exemple.
L’avantage de ce genre de led adressable c’est qu’on peut les chaîner, si je veux brancher deux panneaux LED il me suffira de brancher le connecteur DIN de mon deuxième panneau à mon DOUT de mon premier panneau …
Code :
Pour piloter ce panneau LED il existe un ensemble de librairies qui vont vous simplifier la tâche.
Il vous faut installer :
- Adafruit GFX
- Adafruit NeoPixel
- Adafruit NeoMatrix
- Adafruit BusIO
Rappel pour installer les librairies vous pouvez le faire directement avec l’IDE Arduino via « outils » et « gérer les bibliothèques »
Une fois les librairies installées on va pouvoir ouvrir le code d’exemple : matrixtest (fichier / exemples / Adafuit NeoMatrix/Matrixtest)
Bien que ce programme ne soit pas tout de suite compatible avec notre matrice on peut l’essayer et voici ce que l’on obtient :
Cela ne fonctionne pas complètement comme prévu mais pas de panique c’est normal on va corriger les différents points.
=> Tout notre panneau n’est pas utilisé,
Pour Régler cela il faut ajuster le code aux dimensions de notre panneau à savoir 8 x 32 leds.
On modifie la ligne :
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, PIN,
NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,
NEO_GRB + NEO_KHZ800);
Cette ligne défini une matrice de 8 x 5, où 5 représente le nombre de LED en horizontale et 8 représente le nombre de LED en Verticale.
Puisqu’on a une matrice de 8 x 32, Il faut remplacer le 5 par 32.
On téléverse, et voici le résultat obtenu :
C’est mieux mais le texte s’écrit à l’envers.
Pour corriger ce problème on remplace « NEO_MATRIX_RIGHT », par « NEO_MATRIX_LEFT »
Voici le résultat obtenu :
C’est presque tout bon mais le texte semble « faire un zigzag » pour corriger ce dernier point on va ajouter NEO_MATRIX_ZIGZAG + après NEO_MATRIX_LEFT.
Et voici enfin le résultat obtenu !
On peut désormais s’amuser à changer le texte qui défile en allant à la ligne « matrix.print(F("Howdy")) » et en modifiant le texte entre guillemets.