Bonjours à tous,
Aujourd’hui je vais vous présenter la barrette LED RGB WS2812-B et son fonctionnement.
Présentation :
La barrette de LED RGB WS2812-B est une barrette composé de 8 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 :
- Une Arduino et son câble USB
- La Barrette LED
- 3 fils de type mâle-mâle
Les schémas de câblage :
La barrette LED possède 2 prises 4 fils une « input » et une « output » qui ont chacune :
l’alimentation 5V,
deux masse (GND ) ,
et les signaux DIN et DOUT ( Data Input et Data Output) .
Il faut relier le 5V et GND de l’arduino au 5V et GND de la barrette LED et relier DIN de la barrette 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 barrettes LED il me suffira de brancher le connecteur DIN de ma deuxième barrette à mon DOUT de ma première barrette…
Code :
Pour piloter cette barrette 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)
À 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 la barrette.
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.
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 barrette de LED (actuellement 8 leds).
int pot = analogRead(A0); int led = pot/128; 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 :