Перейти к содержанию

Библиотека FastLED Arduino примеры, описание

Библиотека FastLed Arduino примеры, описание

Библиотека Arduino FastLED используется для создания различных эффектов на адресной светодиодной ленте ws2812 и ws2811. Эта библиотека была использована при разработке гирлянды на Ардуино и с ее помощью можно реализовать множество интересных эффектов. Для понимания функций библиотеки фаст лед следует отдельно рассмотреть описание библиотеки FastLED.h с примерами программ и описанием команд.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • адресная лента ws2812 / ws2811
  • источник питания 5 / 12 Вольт
  • резистор
  • коннекторы
  • библиотека FastLED.h

Дополнительные материалы на эту тему:

  1. Гирлянда на Ардуино с библиотекой FastLED
  2. Описание библиотеки Adafruit NeoPixel Arduino
  3. Часы на адресной ленте WS2812B c Bluethoot

Далее следует пошаговое описание команд библиотеки FastLED Arduino. Первое, что нужно сделать, это включить библиотеку в программе с помощью команды #include и задать константы #define для удобства программирования ws2812. Следует указать количество пикселей в светодиодной ленте и порт для подключения адресной LED ленты. В следующем скетче видно, что тип адресной ленты также определяется константами.

Описание библиотеки FastLED.h Arduino

Описание библиотеки 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.h для Arduino

После загрузки предыдущего кода вы сможете изменить цвета пикселей на адресной ленте. Далее мы рассмотрим более сложные эффекты с помощью популярной библиотеки 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»

Библиотека FastLed Arduino примеры, описание

Первое, с чем сталкивается любой начинающий программист и на поиск причины уходит много времени — это ошибка компилятора для платы Arduino Uno при загрузке программы. Ошибка FastLED.h no such file or directory означает, что на компьютере не установлена библиотека FastLED.h в Arduino IDE. Проблема решается установкой библиотеки фаст лед. Это правило применяется, когда у вас ошибка возникает с другими библиотеками.

Заключение. Помимо основных параметров, в процедуре void setup также задается яркость свечения светодиодов с помощью команды FastLED.setBrightness() — максимальное значение 255. Яркость можно изменить в любом месте программы, в том числе в цикле void loop. В основном цикле мы последовательно подсвечиваем пиксели на адресной ленте разными цветами, которые определяются с помощью палитры RGB.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜