Библиотека Arduino FastLED используется для создания различных эффектов на адресной светодиодной ленте ws2812 и ws2811. Эта библиотека была использована при разработке гирлянды на Ардуино и с ее помощью можно реализовать множество интересных эффектов. Для понимания функций библиотеки фаст лед следует отдельно рассмотреть описание библиотеки FastLED.h с примерами программ и описанием команд.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- адресная лента ws2812 / ws2811
- источник питания 5 / 12 Вольт
- резистор
- коннекторы
- библиотека FastLED.h
Дополнительные материалы на эту тему:
Далее следует пошаговое описание команд библиотеки FastLED Arduino. Первое, что нужно сделать, это включить библиотеку в программе с помощью команды #include и задать константы #define для удобства программирования ws2812. Следует указать количество пикселей в светодиодной ленте и порт для подключения адресной LED ленты. В следующем скетче видно, что тип адресной ленты также определяется константами.
Описание библиотеки FastLED.h Arduino

Для управления адресной лентой используются три популярные библиотеки: FastLED, AdafruitNeoPixel и LightWS2812. Все библиотеки можно скачать с нашего сайта. Библиотеки FastLED.h и Adafruit_NeoPixel.h просты при программировании гирлянды на Arduino, но отличаются по функциональности и занимаемой памяти. После сборки этой простой схемы и установки библиотеки загрузите программу для адресной светодиодной ленты.
#include "FastLED.h"
#define NUM_LEDS 100 // количество пикселей
#define PIN 4 // порт для подключения 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[1] = CHSV(255, 0, 0);
FastLED.show();
delay(500);
}
Библиотека FastLED.h примеры эффектов

После загрузки предыдущего кода вы сможете изменить цвета пикселей на адресной ленте. Далее мы рассмотрим более сложные эффекты с помощью популярной библиотеки fastled, которая использует цикл for Arduino для быстрой отправки информации на адресную ленту ws2812b / ws2811b. В дополнение к предложенным вариантам попробуйте загрузить в микроконтроллер Arduino примеры программ из этой библиотеки.
FastLED пример эффекта «Конфетти»
#include "FastLED.h"
byte bright = 50; // яркость светодиодов
byte baza = 0;
#define NUM_LEDS 100 // количество пикселей
#define PIN 4 // порт для подключения 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();
}
FastLED пример эффекта «Бегущий огонь»
#include "FastLED.h"
byte bright = 50; // яркость светодиодов
byte baza = 0;
#define NUM_LEDS 100 // количество пикселей
#define PIN 4 // порт для подключения 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();
}
FastLED пример эффекта «Фокус»
#include "FastLED.h"
byte bright = 50; // яркость светодиодов
byte baza = 0;
#define NUM_LEDS 100 // количество пикселей
#define PIN 4 // порт для подключения 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);
}
Ошибка «FastLED.h no such file or directory»

Первое, с чем сталкивается любой начинающий программист и на поиск причины уходит много времени — это ошибка компилятора для платы Arduino Uno при загрузке программы. Ошибка FastLED.h no such file or directory означает, что на компьютере не установлена библиотека FastLED.h в Arduino IDE. Проблема решается установкой библиотеки фаст лед. Это правило применяется, когда у вас ошибка возникает с другими библиотеками.
Заключение. Помимо основных параметров, в процедуре void setup также задается яркость свечения светодиодов с помощью команды FastLED.setBrightness() — максимальное значение 255. Яркость можно изменить в любом месте программы, в том числе в цикле void loop. В основном цикле мы последовательно подсвечиваем пиксели на адресной ленте разными цветами, которые определяются с помощью палитры RGB.
