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

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

Библиотека Adafruit NeoPixel Arduino примеры

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

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

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

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

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

Архив с библиотекой Adafruit_NeoPixel.h и FastLED.h содержит несколько примеров программ, с помощью которых вы можете понять, как использовать в скетче команды библиотеки Adafruit_NeoPixel.h для управления адресной led лентой ws2812b от микроконтроллера Arduino. Мы рассмотрим в этой статье пример простой программы с бегущим огоньком на адресной ленте с подробным описанием функций.

Описание библиотеки Adafruit_NeoPixel.h Ардуино

Подключение адресной ленты ws2812 Arduino

В программе, после подключения библиотеки 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 Arduino примеры

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, или вы хотите предложить свои собственные эффекты, оставляйте их в комментариях к этому посту.

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

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

newzaym
➜