Aller au contenu


Photo

Présentation du Panneau LED adressable 8x32 RGB WS2812-B


  • Veuillez vous connecter pour répondre
2 réponses à ce sujet

#1 TheDarkRainibow

TheDarkRainibow

    Nouveau membre

  • Membres
  • 19 messages
  • Gender:Male

Posté 29 octobre 2022 - 08:37

Bonjour à tous,

Aujourd’hui je vais  vous présenter le panneau LED 8x32 RGB WS2812-B et son fonctionnement.

 

1.png

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 :

Les schémas de câblage :

 

Schéma de cablage.jpg

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 …

20221028_111510.jpg

 

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)

matrixtest.PNG

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.

modification de la taille du panneau.PNG

 

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.
 

ajout du zigzag.PNG

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.
 



#2 TheDarkRainibow

TheDarkRainibow

    Nouveau membre

  • Membres
  • 19 messages
  • Gender:Male

Posté 29 octobre 2022 - 08:39

Si on essaye avec  le texte «  Hello les makers » on obtient ce résultat :



On observe encore un petit problème «  d’offset de texte ».
Pour le régler il faut changer l’offset à cette ligne   if(--x < -36) 
Photo
Il faut augmenter ou diminuer le nombre négatif  (par défaut -36) en fonction du nombre de caractères dans le texte que vous souhaitez afficher.  Dans le cas de « Hello les makers » il faut mettre -96 pour que cela s’affiche correctement.

Après quelques tests j’ai déduit que la formule qui lie l’offset au nombre de caractères à afficher pour avoir un affichage correct est : 6 x Nombre de Caractères (en prenant en compte les espaces !).

J’ai donc modifié le code  pour que cet offset soit calculé automatiquement.
J’en ai également profité pour ajouter des #define pour le nombre de ligne et de colonne, et j’ai aussi ajouté une couleur  supplémentaire d’affichage (du blanc).

 


 



#3 Melmet

Melmet

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 526 messages
  • Gender:Male

Posté 29 octobre 2022 - 10:54

Superbe tuto, merci.






1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users