Matrice de 64 Leds couleur adressables WS2812B

Utilisation de capteurs et composants électroniques avec Arduino.
Une fiche de tutoriel pour chaque.

Matrice de 64 Leds couleur adressables WS2812B

Messagepar tiptop » Lun 15 Mar 2021 17:36

Matrice de 64 Leds couleur adressables WS2812B

Image

Matériel utilisé

Image

Principe de fonctionnement
Cette matrice de LEDS comporte des leds de couleur, montées en une bande successive continue (lignes et colonnes).
Chacune comporte une puce minuscule WS2812B, qui est son circuit intégré de pilotage individuel.
La couleur d'éclairage dépend du dosage des 3 couleurs primaires RGB (Red, Green et Blue).

Le montage en cascade de ces petites LEDS permet d'utiliser une seule broche du micro contrôleur (Arduino) pour piloter toute la matrice quelle que soit sa taille.

Une alimentation de 5V DC est requise, avec assez de puissance pour allumer toutes les LEDS à la fois (la broche 5V d'Arduino ne gère que 400 à 900 mA selon qu'on utilise le régulateur intégré ou pas).
Une LED individuelle peut consommer jusqu'à 60mA

Câblage utilisé
  • Alimenter la carte Arduino (câble USB de l'ordinateur)
  • Alimenter la matrice de LEDS avec le transformateur.
  • Important : Penser à relier les masses (GND) de l'alimentation de l'Arduino et celle de la matrice LED.
  • Pilotage de la matrice de LEDS sur la broche 7 du micro contrôleur.
Image

S'il y a plusieurs matrices, on les monte en cascade (entrée : prise JST femelle, sortie prise JST mâle).
Image

Bibliothèque
La bibliothèque FastLED est bien adptée au contrôle de bandes de leds WS2812B.

Lancer l'IDE arduino, et aller dans Sketch/IncludeLibrairy/ManageLibrary pour ouvrir en ligne le Library Manager, chercher dans la barre de recherche la librairie FastLED (Diego Garcia, 3.4.0) et et l'installer sur le PC.
Important, il faut redémarrer l'IDE pour que cette installation soit pris en compte.

Programmation
#define NUM_LEDS 64 indique le nombre de LEDS à piloter (ici 64)
#define LED_PIN 7 est la broche Arduino de pilotage (ajouter R=330 ohm)
La fonction leds [ i ] =CRGB ( r, g, b ) module la couleur RGB de la i ème LED
puis FastLED. show () permet d'éclairer la bande complète
Les valeurs colorimétriques de r, g, b varient de 0 à 255.

Exemple de programme de test :
Code: Tout sélectionner
#include <FastLED.h>
// tiptopboards.com  15 03 2021

#define LED_PIN 7
#define NUM_LEDS 64
CRGB leds[ NUM_LEDS ];
int rouge = 0;
int bleu =0 ;
int vert = 0;
int j = 0;

void setup() {
   Serial.begin(9600); // Serial port at 9600 bps
   FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}

void loop() {
  //Tester chaque led une par une
   for (int i = 0; i <= 64; i++) {
    Serial.print(i);
    //Allumer la led i
    //en bleu (0,0,255)  magenta(255,0,255) rouge(255,0,0)
    // en vert(0,255,0)
    rouge = i*4;
    bleu = 256-rouge;
    vert = random(100);
    j = random(64);
    leds[j] = CRGB (rouge,bleu,vert);
    FastLED.show();
    //Eteindre la LED
    leds[i] = CRGB ( 0, 0, 0 );
    delay(40) ;
   }
}


Exemple de montage en série de 2 modules :
Image

Code pour 2 matrices de suite
Code: Tout sélectionner
#include <FastLED.h>
// tiptopboards.com   15 03 2021

#define LED_PIN 7
#define NUM_LEDS 128
CRGB leds[ NUM_LEDS ];
int rouge = 0;
int bleu =0 ;
int vert = 0;
int j = 0;

void setup() {
   Serial.begin(9600); // Serial port at 9600 bps
   FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}

void loop() {
  //Tester chaque led une par une
   for (int i = 0; i <= 64; i++) {
    Serial.print(i);
    //Allumer la led i
    //en bleu (0,0,255)  magenta(255,0,255) rouge(255,0,0)
    // en vert(0,255,0)
    rouge = i*4;
    bleu = 256-rouge;
    vert = random(100);
    j = random(64);
    leds[j] = CRGB (rouge,bleu,vert);
    FastLED.show();
    //Eteindre la LED
    leds[i] = CRGB ( 0, 0, 0 );
    delay(40) ;
   }
}


Références (en anglais)
https://howtomechatronics.com/tutorials ... g-arduino/
tiptopboards - admin
Avatar de l’utilisateur
tiptop
Administrateur du site
 
Messages: 93
Inscription: Mar 13 Aoû 2013 20:38
Localisation: 38

Retourner vers Capteurs et composants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

cron