FastLED est une librairie Arduino pour piloter des bandeaux de LED adressables (WS2812B, SK6812, APA102, etc.). Elle permet de contrôler chaque LED individuellement, gérer les couleurs, la luminosité et créer des animations complexes.
Déclaration du type de LED, de la broche de données et du nombre de LEDs :
#include <FastLED.h>
#define LED_PIN 6
#define NUM_LEDS 30
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(80); // 0 à 255
}
Principales possibilités :
FastLED.addLeds<CHIPSET, PIN, COLOR_ORDER>(...)FastLED.setBrightness(val) : luminosité globaleFastLED.setCorrection(TypicalLEDStrip) : correction colorimétriqueFastLED.setTemperature(Tungsten40W) : température de couleurChaque LED est accessible via le tableau leds[] :
void loop() {
leds[0] = CRGB::Red; // Rouge
leds[1] = CRGB(0, 255, 0); // Vert (RGB)
leds[2] = CRGB::Blue; // Bleu
FastLED.show(); // Envoie les données au bandeau
delay(200);
}
Couleurs en HSV (teinte, saturation, valeur) :
uint8_t hue = 0;
void loop() {
leds[0] = CHSV(hue, 255, 255); // Couleur arc-en-ciel
hue++; // Incrémente la teinte
FastLED.show();
delay(20);
}
FastLED.setBrightness(40);leds[i] = CRGB::Black;fill_solid(leds, NUM_LEDS, CRGB::Black);
FastLED.show();
Diminuer une LED individuellement :
leds[0] = CRGB::Red;
leds[0].nscale8(50); // ≈ 20% de luminosité
Remplir le bandeau avec un arc-en-ciel :
void loop() {
static uint8_t startHue = 0;
fill_rainbow(leds, NUM_LE