Библиотека Adafruit NeoPixel Ардуино

Библиотека Adafruit NeoPixel Ардуино

Adafruit NeoPixel Arduino ► библиотека применяется для управления адресной светодиодной лентой. Рассмотрим команды и описание библиотеки NeoPixel Ардуино.

Библиотека Adafruit NeoPixel Arduino применяется для управления адресной светодиодной ленты и является достаточно популярной. Поэтому следует рассмотреть подробнее команды Adafruit_NeoPixel.h и описание библиотеки на русском с примерами скетчей для Ардуино. С ее помощью можно сделать множество красивых световых эффектов для LED матрицы на WS2812B или новогодней гирлянды на Ардуино.

Библиотека Adafruit NeoPixel Arduino

Скачать библиотеку можно на нашем сайте, на странице — Библиотеки для Ардуино, также ссылку для скачивания Adafruit_NeoPixel.h можно найти в конце этой записи. В архиве, как и в прочих библиотеках для управления гирляндой на ws2812b Ардуино, имеется несколько примеров прошивок, с помощью которых можно понять, как использовать команды библиотеки неопиксель для Ардуино микроконтроллера.

Ошибка ‘Adafruit_NeoPixel.h no such file or directory’

Первое, с чем сталкивается каждый начинающий программист и долго не может понять в чем причина — это ошибки компиляции Ардуино при загрузке скетча. Ошибка Adafruit_NeoPixel.h no such file or directory означает, что на компьютере не установлена библиотека. Проблему достаточно просто устранить, установив Adafruit_NeoPixel. Это правило действует и при возникновении такой ошибки с другими библиотеками.

Adafruit NeoPixel описание библиотеки

В скетче после подключения Adafruit_NeoPixel.h необходимо создать объект, которым мы будем управлять — Adafruit_NeoPixel strip(). Если вы решили подключить сразу две адресных ленты, то им следует задать разные имена. В скобках следует указать количество светодиодов в ленте, пин Ардуино для логического сигнала, а также задать настройки, которые отличаются для разных типов адресных светодиодов.

#include <Adafruit_NeoPixel.h> // подключаем библиотеку

// указываем количество пикселей в матрице и пин подключения
Adafruit_NeoPixel strip (30, 6, NEO_GRB + NEO_KHZ800);

// NEO_GRB (пиксели привязаны к битовому потоку GRB - лента WS2812)
// NEO_RGB (пиксели привязаны к битовому потоку RGB - лента WS2811)
// NEO_RGBW (для RGBW адресных лент)

// NEO_KHZ800 (800 кГц - указывается для светодиодов WS2812)
// NEO_KHZ400 (400 кГц - указывается для светодиодов WS2811)

В процедуре void setup() следует инициализировать созданный объект, а также указать яркость светодиодов (максимальное значение 255). Команда strip.show() в этом случае отключает все светодиоды, так как не заданы цвета для пикселей ленты. Команду strip.setBrightness() можно использовать в любом месте кода для изменения яркости пикселей, как мы это делали для светильника из WS2812 ленты.

void setup() {
   strip.begin();                     // инициализируем объект NeoPixel
   strip.show();                     // отключаем все пиксели на ленте
   strip.setBrightness(50);  // указываем яркость (максимум 255)
}

Нумерация светодиодов в ленте начинается с нуля, поэтому если мы хотим включить второй светодиод, то в команде strip.setPixelColor(1, strip.Color(250, 0, 0)); следует поставить «1». Далее указывается цвет пикселя (максимальное значение 250) в палитре RGB (Red, Green, Blue). Т.е. в данном примере пиксель загорится красным цветом. Если требуется выключить светодиод, то указываем strip.Color(0, 0, 0).

void loop() {
   strip.setPixelColor(0, strip.Color(250, 0, 0));  // указываем цвет первого пикселя
   strip.show();  // отправляем информацию на ленту
}

Arduino NeoPixel эффекты: примеры скетчей

Таким образом мы можем собрать, полученный код, для создания самых простых эффектов на Adafruit NeoPixel. В представленном далее примере будут поочередно включаться пиксели на адресной ленте с разными цветами. Подключите к скетчу Arduino библиотеку Adafruit_NeoPixel.h и загрузите программу в микроконтроллер.

Пример управления WS2812B с NeoPixel

#include <Adafruit_NeoPixel.h> // подключаем библиотеку

// указываем количество пикселей в матрице и пин подключения
Adafruit_NeoPixel strip (30, 6, NEO_GRB + NEO_KHZ800);

void setup() {
   strip.begin();                     // инициализируем объект NeoPixel
   strip.show();                     // отключаем все пиксели на ленте
   strip.setBrightness(50);  // указываем яркость (максимум 255)
}

void loop() {
   strip.setPixelColor(0, strip.Color(250, 0, 0));  // указываем красный цвет для первого пикселя
   strip.show();     // отправляем информацию на ленту
   delay(500);      // задержка для эффекта

   strip.setPixelColor(1, strip.Color(0, 250, 0));  // указываем зеленый цвет для второго пикселя
   strip.show();     // отправляем информацию на ленту
   delay(500);      // задержка для эффекта

   strip.setPixelColor(2, strip.Color(0, 250, 0));  // указываем синий цвет для третьего пикселя
   strip.show();     // отправляем информацию на ленту
   delay(500);      // задержка для эффекта
}

Для создания эффектов с помощью библиотеки Adafruit NeoPixel чаще всего используется цикл for в скетче, который позволяет быстро отправлять на адресную ленту команды NeoPixel. С помощью данного цикла можно «перебирать» пиксели или менять их цвет, создавая тем самым разнообразные эффекты. Разберем еще один простой Adafruit_NeoPixel.h, чтобы лучше понять принцип работы с библиотекой.

Пример скетча с эффектами NeoPixel

#include <Adafruit_NeoPixel.h> // подключаем библиотеку

int pix = 30; // указываем количество пикселей

// указываем количество пикселей в матрице и пин подключения
Adafruit_NeoPixel strip (pix, 6, NEO_GRB + NEO_KHZ800);

void setup() {
   strip.begin();                     // инициализируем объект NeoPixel
   strip.show();                     // отключаем все пиксели на ленте
   strip.setBrightness(50);  // указываем яркость (максимум 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);      // задержка для эффекта
   }
}

В данной прошивке используется два цикла for. В первом цикле все пиксели поочередно зажигаются синим цветом. Во втором, который имеет вложенный цикл for, кроме поочередного зажигания пикселей, дополнительно меняется оттенок цвета. Комбинируя изменение различных параметров можно добиться крутых световых эффектов с адресной лентой WS2812B и Adafruit NeoPixel библиотекой Ардуино.

Библиотека Adafruit NeoPixel скачать

Скачать архив с библиотекой Неопиксель можно по ссылке: скачать Adafruit_NeoPixel.h. Кроме того, все популярные библиотеки для скетчей Ардуино с адресной лентой можно скачать на странице нашего сайта — Библиотеки Ардуино. Если у вас остались вопросы по описанию библиотеки adafruit neopixel на русском или вы хотите предложить свои варианты эффектов — оставляйте их в комментариях к этой записи.

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5,00 out of 5)
Загрузка...

Подборка на тему: Библиотека Adafruit NeoPixel Ардуино

Один комментарий для “Библиотека Adafruit NeoPixel Ардуино

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

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