SOMMAIRE ►
La bibliothèque Arduino FastLED est utilisée pour créer divers effets sur la bande de LED WS2812B. Cette bibliothèque a été utilisée dans le développement de la barre lumineuse Arduino et de nombreux effets intéressants ont été réalisés avec elle. Afin de comprendre le code, la description de la bibliothèque FastLED.h Arduino en français avec des exemples et des descriptions de programmes doit être considérée séparément.
Ce dont vous aurez besoin
- Arduino Uno / Arduino Nano / Arduino Mega
- ruban LED WS2812B / WS2811B
- alimentation 5V / 12V
- résistance de 100 à 500 ohms
- fils de connexion
- librairie FastLED.h
Matériel supplémentaire sur ce sujet:
Découverte de bibliothèque FastLED Arduino

Ce qui suit est une décomposition étape par étape des commandes de la bibliothèque FastLED. La première chose à faire est d’inclure la bibliothèque dans le code en utilisant la commande #include et de définir les constantes #define pour une programmation pratique – le nombre de pixels et la broche pour connecter la bande d’adresse. Dans les exemples, vous pouvez voir que le type de la bande d’adresse est également défini par des constantes.
Description des commandes de la bibliothèque FastLED
#include "FastLED.h" #define NUM_LEDS 100 // nombre de LEDs #define PIN 4 // port de connexion ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(50); } void loop() { leds[0] = CHSV(0, 0, 255); FastLED.show(); delay(500); leds[1] = CHSV(0, 255, 0); FastLED.show(); delay(500); leds[2] = CRGB::Red; FastLED.show(); delay(500); leds[3] = CRGB::White; FastLED.show(); delay(500); }
Après avoir chargé le code, vous pouvez modifier les couleurs des pixels sur le ruban. Ensuite, nous examinerons des effets plus complexes avec la bibliothèque fastlead, qui utilise essentiellement une boucle for Arduino pour envoyer rapidement des informations à la bande d’adresse ws2812b / ws2811b. En plus des options suggérées, essayez de charger les programmes des exemples de cette bibliothèque dans le microcontrôleur Arduino.
Ruban LED WS2812B Arduino code FastLED exemples

Trois bibliothèques populaires sont utilisées pour le fonctionnement du ruban : FastLED, AdafruitNeoPixel et LightWS2812. Toutes les bibliothèques peuvent être téléchargées à partir de notre site web. Les bibliothèques FastLED et Adafruit NeoPixel sont faciles à utiliser, mais diffèrent en termes de fonctionnalités et d’empreinte mémoire. Après avoir assemblé ce circuit simple et installé les bibliothèques, téléchargez le programme de la bande d’adresses LED.
Exemple de code FastLed avec effet « Arc-en-ciel »
#include "FastLED.h" byte bright = 50; // luminosité des LEDs byte baza = 0; #define NUM_LEDS 100 // nombre de LEDs #define PIN 4 // port de connexion ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(baza+ i * 5, 255, 255); } baza++; FastLED.setBrightness(bright); FastLED.show(); delay(20); }
Exemple de code FastLed avec effet « Confetti »
#include "FastLED.h" byte bright = 50; // luminosité des LEDs byte baza = 0; #define NUM_LEDS 100 // nombre de LEDs #define PIN 4 // port de connexion ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); int pos = random16(NUM_LEDS); leds[pos] += CHSV(baza++ + random8(64), 200, 255); FastLED.setBrightness(bright); FastLED.show(); }
Exemple FastLed.h library avec effet de « Lumière courante »
#include "FastLED.h" byte bright = 50; // luminosité des LEDs byte baza = 0; #define NUM_LEDS 100 // nombre de LEDs #define PIN 4 // port de connexion ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); int pos = beatsin16(13, 0, NUM_LEDS - 1); leds[pos] += CHSV(baza++, 255, 192); FastLED.setBrightness(bright); FastLED.show(); }
Exemple FastLed.h library avec effet « Cyclone »
#include "FastLED.h" byte bright = 50; // luminosité des LEDs byte baza = 0; #define NUM_LEDS 100 // nombre de LEDs #define PIN 4 // port de connexion ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { for (int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(baza++, 255, 255); FastLED.setBrightness(bright); FastLED.show(); delay(20); } }
Exemple FastLed.h library avec effet « Focus »
#include "FastLED.h" byte bright = 50; // luminosité des LEDs byte baza = 0; #define NUM_LEDS 100 // nombre de LEDs #define PIN 4 // port de connexion ws2812b CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); for (int i = 0; i < 8; i++) { leds[beatsin16(i + 7, 0, NUM_LEDS - 1)] |= CHSV(baza+=16, 200, 255); } FastLED.setBrightness(bright); FastLED.show(); delay(20); }
Erreur de code ‘FastLED.h no such file or directory’
La première chose que tout programmeur novice rencontre et dont il met longtemps à trouver la cause est une erreur de compilation Arduino lors du chargement du programme. L’erreur FastLED.h no such file or directory signifie que la bibliothèque FastLED.h n’est pas installée sur l’ordinateur. Le problème est facilement résolu en installant librairie FastLED. Cette règle s’applique également lorsque cette erreur se produit avec d’autres bibliothèques.
Conclusion. En plus des paramètres de base, la procédure void setup spécifie également la luminosité des LEDs avec la commande FastLED.setBrightness() – la valeur maximale est 255. La luminosité peut être modifiée n’importe où dans le programme, y compris dans la procédure void loop. Dans la boucle principale, nous avons allumé les pixels sur la bande d’adresse en séquence avec différentes couleurs, qui sont définies avec la palette RGB.








Laisser un commentaire