Адресная светодиодная лента Ардуино

СОДЕРЖАНИЕ ►
Адресная светодиодная лента WS2812B привлекает многих радиолюбителей за возможность создания интересных и ярких проектов на Ардуино с ws2812b светодиодами. Но прежде, чем приступать к новому крутому проекту, следует понять, как подключить и правильно управлять адресной лентой от Ардуино. Рассмотрим в этой статье несколько простых примеров по работе с WS2812B Arduino Uno.
Адресная светодиодная лента Ардуино
Адресные ленты отличаются плотностью — от 30 до 144 светодиодов на метр, изготавливаются разном защитном исполнении: IP30, IP65, IP67, IP68. Все варианты исполнения, кроме IP30, могут применяться на улице в диапазоне температур от -25 до +80°C. Еще одна, более надежная лента — WS2813 отличается возможностью передавать сигналы дальше по цепочке даже через сгоревший чип.
Светодиодная лента WS2812B характеристики
- Размер светодиода — 5 х 5 мм
- Частота ШИМ — 400 Гц
- Скорость передачи данных — 800 кГц
- Размер данных — 24 бита на светодиод
- Напряжение питания — 5 Вольт
- Потребление при нулевой яркости — 1 мА на светодиод
- Потребление при максимальной яркости — 60 мА на светодиод
- Цветность: RGB, 256 оттенков на канал, 16 миллионов цветов

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

Многих интересует, как включить адресную ленту без Ардуино и проверить ее на работоспособность. Если просто подключить питание к ленте, то ничего не произойдет — проверить ленту без контроллера нельзя. Если задеть цифровой вход адресной ленты, то могут загореться несколько светодиодов из-за случайных помех, которые воспринимаются контроллерами ws2812b светодиодов, как команды.
Если под рукой нет платы Ардуино, то можно использовать для проверки специальный контроллер. В крайнем случае, просто потрогать цифровой провод, чтобы понять будут гореть светодиоды на ленте или нет. Другого надежного способа проверить работу ws2812b ленты нет, поэтому рассмотрим далее управление и программирование адресной светодиодной ленты на микроконтроллере Ардуино Нано или Уно.
Как подключить адресную ленту к Ардуино
Для занятия нам понадобятся следующие детали:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- лента WS2812B;
- макетная плата;
- 1 резистор от 100 до 500 Ом;
- провода «папа-папа».
WS2812B светодиоды довольно энергоемкие, один светодиод потребляет до 60 мА при максимальной яркости. Для ленты со 100 диодами потребуется блок питания на 6 и более Ампер. Микроконтроллер Arduino и светодиодная лента могут быть подключены к разным источникам питания, но «земля» должна быть общая. Дело в том, что пин GND тоже участвует в управлении адресной лентой от платы Ардуино Уно.

Для работы с лентой используются три популярные библиотеки — FastLED, AdafruitNeoPixel и LightWS2812. Все библиотеки доступны для скачивания на нашем сайте здесь. Работать с библиотеками FastLED и Adafruit NeoPixel просто, отличаются они в функциональности и объеме занимаемой памяти. После сборки этой простой схемы и установки библиотек, загрузите скетч для адресной светодиодной ленты.
Скетч. Тестирование адресной ленты WS2812
#include <Adafruit_NeoPixel.h> // подключаем библиотеку #define PIN 10 // указываем пин для подключения ленты #define NUMPIXELS 3 // указываем количество светодиодов в ленте // создаем объект strip с нужными характеристиками Adafruit_NeoPixel strip (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); // инициализируем ленту strip.setBrightness(50); // указываем яркость светодиодов (максимум 255) } void loop() { strip.setPixelColor(0, strip.Color(255, 0, 0)); // включаем красный цвет на 1 светодиоде strip.show(); // отправляем сигнал на ленту delay(500); strip.clear(); // выключаем все светодиоды strip.setPixelColor(1, strip.Color(0, 0, 255)); // включаем синий цвет на 2 светодиоде strip.show(); // отправляем сигнал на ленту delay(500); strip.clear(); // выключаем все светодиоды strip.setPixelColor(2, strip.Color(255, 255, 255)); // включаем белый цвет на 3 светодиоде strip.show(); // отправляем сигнал на ленту delay(500); strip.clear(); // выключаем все светодиоды }
Пояснения к коду:
- нумерация светодиодов в ленте начинается с нуля, поэтому если мы хотим включить первый светодиод, то указывать надо «0».

Если у вас лента на 12 Вольт, то ее нужно подключать по схеме, размещенной выше. Резистор на цифровом пине защищает его от выгорания (если питание к ленте будет отключено, то она начнет питаться от цифрового пина, при этом пин может выгореть. Также не стоит подключать питание ленты к плате Ардуино, иначе может выгореть защитный диод на Ардуино или USB порт на компьютере (в худшем случае).
Скетч. Управление адресной лентой Ардуино
#include <Adafruit_NeoPixel.h> // подключаем библиотеку #define PIN 10 // указываем пин для подключения ленты #define NUMPIXELS 3 // указываем количество светодиодов в ленте // создаем объект strip с нужными характеристиками Adafruit_NeoPixel strip (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); // инициализируем ленту strip.setBrightness(50); // указываем яркость светодиодов (максимум 255) } void loop() { // поочередно включаем красный цвет for (int i = -1; i < NUMPIXELS; i++) { strip.setPixelColor(i, strip.Color(255, 0, 0)); strip.show(); delay(100); } // поочередно включаем зеленый цвет for (int i = -1; i < NUMPIXELS; i++) { strip.setPixelColor(i, strip.Color(0, 255, 0)); strip.show(); delay(100); } // поочередно включаем синий цвет for (int i = -1; i < NUMPIXELS; i++) { strip.setPixelColor(i, strip.Color(0, 0, 255)); strip.show(); delay(100); } }
Пояснения к коду:
- с помощью библиотеки Adafruit NeoPixel довольно просто управлять адресной лентой. В примерах к библиотеке можно найти много различных эффектов. Мы продемонстрировали простой вариант с циклом for для включения ленты.
Заключение. В этом обзоре мы рассмотрели лишь подключение и возможность управления адресной лентой от Ардуино. Так как возможности работы с библиотеками FastLED, AdafruitNeoPixel довольно разнообразны. Больше интересных примеров на Arduino и WS2812B размещено в разделе Проекты на Ардуино, где представлены проекты с бегущей строкой на адресной ленте и другие световые эффекты.
Подборка на тему: Адресная светодиодная лента Ардуино
Один комментарий для “Адресная светодиодная лента Ардуино”
Добавить комментарий
Записи похожие на: Arduino. Адресная лента WS2812B
- Ардуино: установка библиотек в Arduino IDE
- Светильник на Ардуино с пультом
- Циклы в Ардуино for и while
- Ввод текста энкодером на Ардуино
Проекты похожие на: Arduino. Адресная лента WS2812B
Thanks for sharing, this is a fantastic blog. Much thanks again. Liana