Aller au contenu


Photo

Présentation du disque LED adressable RGB WS2812-B


  • Veuillez vous connecter pour répondre
Aucune réponse à ce sujet

#1 TheDarkRainibow

TheDarkRainibow

    Membre

  • Membres
  • 19 messages
  • Gender:Male

Posté 02 novembre 2022 - 11:07

Bonjours à tous,

 

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

 

disque-led-rgb-ws2812-b.jpg

 

Présentation :

 

Le disque de LED RGB WS2812-B est un disque composé de plusieurs LEDS RGB WS2812-B. Utile pour faire des éclairages décoratifs, ou encore faire une lampe de bureau avec sélection de couleur, etc…. Chacune des leds peut être pilotées indépendamment et de n’importe quelle couleur.

 

Matériel nécessaire :

 

Les schémas de câblage :

 

20221102_102806.jpg

 

Le disque LED possède 2 prises 3 fils une «  input » et une «  output »  qui ont chacune :
  l’alimentation 5V fil rouge,
  une 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 disque LED et relier DIN du disque 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 disques LED il me suffira de brancher le connecteur DIN de mon deuxième disque à mon DOUT de mon premier disque…

 

20221102_103341.jpg

 

Code :

 

Pour piloter ce disque de LED il existe un ensemble de librairies qui vont vous simplifier la tâche.

 

Il vous faut installer :

  • FastLED

 

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 : Blink  (fichier / exemples / FastLED / Blink)

 

Capture.PNG

 

À l’aide du code d’exemple blink et d’un potentiomètre on va créer un programme permettant de sélectionner la led que l’on veut faire clignoter sur le disque.

 

On va d’abord ouvrir une nouvelle fenêtre en allant sur « fichier » et sur « nouveau ».

 

Aller sur le code Blink et copier :

#include <FastLED.h>

#define NUM_LEDS 8

#define DATA_PIN 6

CRGB leds[NUM_LEDS];

void setup() {

Serial.begin(9600);

FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);

 }

void loop() {

  // Turn the LED on, then pause

  leds[0] = CRGB::Red;

  FastLED.show();

  delay(500);

  // Now turn the LED off, then pause

  leds[0] = CRGB::Black;

  FastLED.show();

delay(500);

}

Coller le tout sur la nouvelle page que l’on a créé juste avant.

 

Capture2.PNG

 

On ajoute le code de la lecture du potentiomètre dans la fonction « void loop() » puis on fait la conversion des données du pot au nombre de led qu’a notre disque de LED (actuellement 35 leds).

int pot = analogRead(A0);

int led = pot/30;

Serial.print("Potentiomètre: ");

Serial.println(pot);

Serial.print("Numéro de LED: ");

Serial.println(led);

Remplacer «   leds[0] » par  « leds[led], » ajuster les « delay(500); » (selon votre choix) puis téléverser.

 

 

Voici la totalité du code :

 






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

0 members, 0 guests, 0 anonymous users