Библиотека Arduino Adafruit NeoPixel используется для управления адресной светодиодной лентой и является довольно популярной. Поэтому нам стоит подробнее рассмотреть команды и описание библиотеки на русском языке с примерами скетчей. Вы можете использовать его для создания множества красивых световых эффектов для светодиодной матрицы на WS2812B или рождественской елочной гирлянды на Ардуино.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- адресная лента ws2812b
- источник питания 5 Вольт
- резистор
- коннекторы
- скачать библиотеку Adafruit_NeoPixel.h
Дополнительные материалы на эту тему:
Архив с библиотекой Adafruit_NeoPixel.h и FastLED.h содержит несколько примеров программ, с помощью которых вы можете понять, как использовать в скетче команды библиотеки Adafruit_NeoPixel.h для управления адресной led лентой ws2812b от микроконтроллера Arduino. Мы рассмотрим в этой статье пример простой программы с бегущим огоньком на адресной ленте с подробным описанием функций.
Описание библиотеки Adafruit_NeoPixel.h Ардуино

В программе, после подключения библиотеки Adafruit_NeoPixel.h, нам нужно создать объект, которым мы будем управлять в скетче — strip. Если вы подключаете к микроконтроллеру две или более адресной ленты, вы должны указать разные имена. В скобках необходимо указать количество пикселей, порт для логического сигнала и задать настройки, которые отличаются для разных типов адресных led лент.
Adafruit_NeoPixel.h пример скетча с описанием
#include "Adafruit_NeoPixel.h"
int pix = 100;
Adafruit_NeoPixel strip (pix, 4, NEO_GRB + NEO_KHZ800);
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
void setup() {
strip.begin();
strip.show();
strip.setBrightness(50); // maximum 255
}
void loop() {
for (int i = 0; i <= pix; i++) {
strip.setPixelColor(i, 0, 0, 250);
strip.show();
delay(50);
}
for (int b = 50; b < 250; b++) {
for (int i = 0; i <= pix; i++) {
strip.setPixelColor(i, 250, 250, b * i / 250);
}
strip.show();
delay(50);
}
}
Команды библиотеки Adafruit_NeoPixel.h Ардуино
![]()
Adafruit_NeoPixel strip (Аргумент 1, Аргумент 2, Аргумент 3) — инициализирует объект с адресной лентой, со следующими параметрами:
Аргумент 1: количество светодиодов (пикселей)
Аргумент 2: Номер порта, к которому подключен вход данных
Аргумент 3: Состоит из двух сведений, определяющих тип используемого светодиода, используете ли вы RGB или RGBW тип светодиода. Неправильный выбор в этом споре может привести к случайным функциям, не тому цвету, не тому месту и т.д.
strip.begin() — позволяет подготовить объект (должен быть помещен в setup)
strip.setBrightness(value) — установка яркости (максимум 255)
strip.setPixelColor(num, strip.Color(R,G,B)) — num = номер светодиода от 0 до 11 (если 12 светодиодов) и ring.color(r,g,b) определение цвета для отображения или R = от 0 до 255 (красный канал), G =0 до 255 (зеленый канал) и B ( от 0 до 255) синий канал.
strip.show() — отображает внесенные изменения
Ошибка «Adafruit_NeoPixel.h no such file or directory»
Первое, с чем сталкивается любой начинающий программист Arduino — это ошибка компиляции Ардуино при загрузке программы. Ошибка Arduino ‘Adafruit_NeoPixel.h no such file or directory’ означает, что библиотека не установлена на компьютере. Проблему можно решить, просто установив библиотеку Adafruit_NeoPixel на компьютер. Это правило также применяется, когда эта ошибка возникает с другими библиотеками.
Заключение. Нумерация светодиодов в адресной ленте ws2812 и ws2811 начинается с нуля. Если необходимо включить первый светодиод на led ленте, то должно быть установлено значение «0» strip.setPixelColor(0, strip.Color(250, 0, 0, 0)); Если у вас остались вопросы по описанию библиотеки adafruit neopixel, или вы хотите предложить свои собственные эффекты, оставляйте их в комментариях к этому посту.
