Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 47

Как сделать динамические поворотники на WS2812B и Ардуино

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

Адресные светодиодные ленты

Светодиодная лента – это набор связанных светодиодов, на которые может одновременно подаваться напряжение питания. Обычные ленты хорошо всем знакомы, они используются сегодня повсюду. В адресной светодиодной ленте так же используются светодиоды, но светоизлучающий диод может управляться отдельно и независимо от других. Таким образом, адресные ленты можно использовать для более интеллектуального управления световым потоком на отдельных участках ленты, включая или выключая подсветку в нужное время и в нужном месте.

LED-lenta-WS2811.jpg
Адресная светодиодная лента WS2811

Сегодня наибольшей популярностью пользуются разноцветные светодиодные ленты RGB-формата, позволяющие получать множество цветов. Благодаря конструкции есть возможность управления цветом каждого светодиода, что позволяет создавать оригинальные световые эффекты. Главное отличие адресной светодиодной ленты от обычной RGB ленты – это наличие специальных контроллеров (конструктивно выполненных в виде микросхем) возле каждого светодиода, что и дает возможность индивидуальной адресации и регулирования каждого оттенка.

Как правило,л ента содержит 3-4 контакта для подключения. Два вывода используются для питания – 5 Вольт и земля, остальные один или два – логический, для управления свечением. 

Управление умной лентой производится по цифровому протоколу. Это значит, что без управляющего контроллера управлять устройством нельзя. Кстати, при прикосновении к цифровому входу может загореться несколько диодов – это связано с тем, что появляются помехи, которые контроллер принимает за команды. 

Самыми популярными адресными светодиодными лентами являются устройства на чипах WS2812b и WS2811. В первом случае чип находится прямо внутри светодиода, то есть один прибор управляет свечением одного излучающего диода. Питание ленты составляет 5 вольт. Во втором случае чип помещается отдельно, и к нему подключаются 3 диода. Мощность – 12 вольт.

Купить адресную светодиодную ленту

Ленты ws2812 достаточно распространены на российском рынке, их без труда можно найти в многочисленных специализированных магазинах. Можем посоветовать интернет-магазин Giant4.Ru с достаточно широким ассортиментом различных светодиодных лент и вполне низкими ценами, сопоставимыми с али. Если же есть возможность и желание ждать товар с Алиэкспресса, то ниже мы собрали вместе некоторые популярные варианты у надежных поставщиков:

1m-4m-5m-WS2812B-30-60-74-96-100-144-pixels-leds-m-Smart-led-pixel.jpg_220x220.jpgАдресная светодиодная лент 1m/4m/5m WS2812B 30/60/144 pixels,IP30/IP65/IP67 DC5V DC5V-WS2812B-1m-4m-5m-30-60-74-96-144-pixels-leds-m-Smart-led-pixel.jpg_220x220.jpgСветодиодная лента DC5V WS2812B 1m/4m/5m 30/60/74/96/144 pixels/leds/m от надежного поставщика Адресная светодиодная лента DC5V 1m/4m/5m WS2812B

Как работает адресная светодиодная лента

Принцип работы ленты следующий. Она поделена на сегменты, в каждом из которых находятся светодиод и конденсатор. Они все подключены параллельно, а данные передаются последовательно от одного сегмента к другому. Управление осуществляется контроллером, в котором прописывается программа функционирования. Управлять лентой можно через платформу Ардуино. 

Маркировка адресной ленты:

  • Black PCB / White PCB – цвета подложки;
  • 1м/5 м – длина адресной ленты;
  • 30/60/74 и т.д. – сколько светодиодов приходится на 1 метр ленты;
  • IP30, IP65, IP67 – степень влаго- и пылезащищенности ленты =. 

Адресные светодиодные ленты используются для сборки полноценных модулей, в конструировании ламп с управлением soft lights, для декоративной подсветки, в построении диодных экранов уличной рекламы. 

Видео инструкции и ролики

Обучающее видео на канале HomeMade:

Видео по созданию бегущей строки на базе ленты ws2112

Лента на базе ws2812b

Лента на базе ws2812b

Лента на чипе ws2812b является более совершенствованной, чем ее предшественник. ШИМ драйвер в адресной ленте компактен, и размещается прямо в корпусе светоизлучающего диода. 

Основные преимущества ленты на основе ws2812b:

  • компактные размеры;
  • легкость управления;
  • управление осуществляется всего по одной линии + провода питания;
  • количество включенных последовательно светодиодов не ограничено;
  • невысокая стоимость – покупка отдельно трех светодиодов и драйвера к ним выйдет значительно дороже.

Лента оснащена четырьмя выходами:

  • питание;
  • выход передачи данных;
  • общий контакт;
  • вход передачи данных.

Максимальный ток одного адресного светодиода равняется 60 миллиамперам. Рабочие температуры лежат в пределах от -25 до +80 градусов. Напряжение питания составляет 5 В +-0,5.

ШИМ драйверы ленты 8-мибитные – для каждого цвета возможно 256 градация яркости. Для установки яркости нужно 3 байта информации – по 8 бит с каждого светодиода. Информация передается по однолинейному протоколу с фиксированной скоростью. Нули и единицы кодируются высоким и низким уровнем сигнала по линии. 

1 бит передается за 1,25 мкс. Весь пакет из 24 бит для одного светодиода передается за 30 мкс. 

Пример подключения к ардуино

Любая адресная светодиодная лента имеет начало и конец, которые важно не перепутать во время сборки. На них есть специальные обозначающие стрелки, которые указывают направление сигнала. 

Лента ws2812B подключается к Ардуино следующим образом.

Лента ws2812B подключается к Ардуино следующим образом

Еще один вариант подключения:

Подключение ws2128 к Ардуино

Выходы питания с ленты 5В и земля соединяются с соответствующими контактами на микроконтроллере Ардуино. При подключении отрезка с более чем 13 светодиодами потребуется выносной блок питания. Земля и минус блока питания должны быть соединены друг с другом. DINможно подключить к любому цифровому порту на Ардуино. Он используется для получения данных с контроллера. 

Цифровой вход ленты идет на вход контроллера, поэтому между ними нужен токоограничивающий резистор номиналом 100-500 Ом. С его использованием нагрузка на пин будет ниже. На другом конце ленты также есть 3 контакта, к которым можно подключить отрезки различной длины. 

Каждый блок ленты состоит из трех светодиодов. Соответственно, для управления подсветкой потребуется 3 байта – по одному на каждый свет. Каждый байт принимает значение от 0 до 255 – это значит, что есть возможность задания более 16 миллионов оттенков.

Данные передаются следующим образом:

  • ШИМ драйвер забирает первые 3 байта, остальные передаются на выход D0;
  • затем пауза длительностью 50 мкс;
  • второй драйвер принимает следующие 3 байта.И так далее.
  • Когда длительность задержки становится более 50 мкс, передача окончена и начинается второй цикл.

Причины проблем при работе с адресной светодиодная лентой:

  • неправильное соединение с землей;
  • сигнальный провод идет не в начало схемы;
  • перепутаны земля и 5 В;
  • если получаются цвета ближе к красному, проблема с блоком питания, пайкой линии или слишком тонкие провода;
  • после подключения без резистора пин на Ардуино может сломаться, поэтому придется переключать на другой.

Библиотеки Ардуино для работы со светодиодной лентой

Для управления адресной светодиодной лентой существует 3 библиотеки: FastLED, AdafruitNeoPixel и LightWS2812. Наиюолее популярной является первая. Она поддерживает все версии Ардуино и различные протоколы данных, которые используются не только для адресной ленты. Но надо иметь в виду, что FastLED более ресурсоемкая.

Вторая библиотека, AdafruitNeoPixel, чаще используется при работе со светодиодными кольцами. Возможностей меньше, скорость ниже, но она менее требовательна к ресурсам, в ее составе только самое нужное. Поддерживает все версии Ардуино. Третья библиотека используется не очень часто.

Работать с библиотеками FastLED и Adafruit NeoPixel одинаково просто. Их отличия заключаются в функциональности и объеме занимаемой памяти.

Основные моменты подключения ленты:

  • Команды передаются друг за другом, и нужно не перепутать начало и конец. D1 принимает команды, D0 используется для подключения дополнительных отрезков. 
  • Для подключения цифрового входа нужно резистор.
  • При монтаже адресной светодиодной ленты нельзя допускать статического электричества. 
  • Если между лентой и Ардуино расстояние более 15 см, сигнальный провод и землю нужно перекрутить в косичку. Это поможет избежать наводок. 
  • Питание. Каждому светодиоду в сегменте нужно 20 мА. Суммарный ток будет составлять 60 мА. Нужно просчитать общий ток ленты, и, исходя из полученного значения, подбирать блок питания. Например, лента длиной 1 м с 60 диодами будет потреблять 60*60=3600 мА=3,6 Ампер. Блок питания подбирается с похожей мощностью. 
  • Силовые точки должны быть запаяны качественно. Провода должны иметь такое сечение, чтобы выдерживать подаваемую нагрузку. Минимальное сечение 1,5 кв.м. При тонких проводах заданный программно белый цвет будет отдавать красным оттенком. 
  • Помехи. Лента, которая мигает, может создать помехи на линии. Если она с контроллером получает напряжение от одного источника, то помехи пойдут на микроконтроллер. Это может привести к нестабильности работы и различным сбоям. Решением проблемы будет установка электролитического конденсатора емкостью 470 мкФ на питание микроконтроллера и конденсатор на 1000 или 2200 мкФ на питание ленты. 
  • Если лента и устройство управления питаются от источников с разным напряжением, нужно использовать преобразователь уровня. 
  • Рекомендуется подавать на ленту менее 5 В питания.
  • Питание в длинной ленте советуется распределить по всей длине. В ином случае моет произойти перегрев токопроводящих дорожек.
  • На ленте имеется толстый слой меди. От точки питания по ленте может падать напряжение. Для удаления подобной проблемы нужно дублировать питание при помощи медного провода сечением минимум 1,5 кв.м. через каждый метр. 

Соблюдение основных моментов и следование инструкции позволяет самостоятельно подключить адресную светодиодную ленту к вашему проекту.

Большой сборник эффектов для адресной светодиодной ленты на чипах WS2812b в одном большом скетче! Эффекты собраны и оптимизированы со всех уголков интернета. Также добавлена функция адаптивного изменения яркости от уровня внешнего освещения (нужен фоторезистор).

12.12.2018 – исправлены обе прошивки, теперь код компилируется в свежих версиях Arduino IDE! Перекачайте архив04.04.2019 – добавлена прошивка с переключением режимов кнопкой. Перекачайте архив

</span>

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

  • В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций, всё это с приятным монтажиком, музычкой и комментариями. В общем, приятного просмотра!

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Схема

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

  • Arduino NANO 328p – искать

ПРОШИВКА И НАСТРОЙКА

Содержимое папок в архиве

FastLED – библиотека для дисплея, установить в C:Program FilesArduinolibraries (для 64 разрядных Windows C:Program Files(x86)Arduinolibraries)

WS2812_FX – прошивка для просмотра режимов и эффектов

WS2812_FX_rndChange_light – прошивка со случайной сменой режимов и адаптивной подсветкой

Как прошить?

  • ЕСЛИ ЭТО ПЕРВЫЙ ОПЫТ РАБОТЫ С ARDUINO – посмотреть ВИДЕО о платформе с целью ознакомления, далее скачать, установить и настроить необходимые для работы программы согласно СУПЕР ПОДРОБНОЙ ИНСТРУКЦИИ (там даже видео версия есть!).
  • Скачать архив с проектом напрямую, или с GitHub (кнопки чуть выше)
  • Подключить Ардуино к компьютеру при помощи Data-кабеля
  • Открыть файл прошивки желаемой версии (файлы прошивок .ino лежат в одноимённых папках)
  • Настроить Arduino IDE (COM порт, куда подключена плата; подключенная модель Arduino, как в статье из первого пункта)
  • Настроить что нужно в прошивке, нажать загрузить
  • Если происходит ошибка компиляции или ошибка загрузки, читать 5-ый пункт в ЭТОЙ СТАТЬЕ

Настройки в прошивке

#define LED_COUNT 49          // число светодиодов в кольце/ленте  #define LED_DT 13             // пин, куда подключен DIN ленты    int max_bright = 100;          // максимальная яркость (0 - 255)  boolean adapt_light = 1;       // адаптивная подсветка (1 - включить, 0 - выключить)  

Гирлянда.jpg

Гирлянда на ws2812b: http://ali.pub/2wm1f6

Arduino uno: http://ali.pub/1th4sk

Блок питания 5В 2а: http://ali.pub/2wm11r

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

В данной гирлянде используется 50 светодиодов находящихся на расстоянии друг от друга в 10 см и тем самым гирлянда имеет 5 метров. Можно и больше диодов например 100 но сто светодиодов это предел для микроконтроллеров atmega328 которые находятся в arduino uno и arduino nano. Если всетаки у Вас например очень большая елка и выходите больше 100 светодиодов, то нужно взять микроконтроллер arduino mega http://ali.pub/1bl0n8 он то уж точно справится и с большим количеством диодов. В отличии от снежинки где простой эфект, здесь 11 эфектов, с разной яркостью и в пике может довольно сильно проседать по питанию, поэтому и рекомендую блок питания не меньше 2А.

Сама программа сложная, состоит из 18 вкладок, умеет управляться по блютузу с помощью приложения на android. данную программу я нашел на просторах интернета, где-то на  adafruit.

Схема подключения выглядит вот таким образом:

гирлянда-на-ws2812.jpg

Сам скетч можно скачать здесь: https://yadi.sk/d/gbYCnPUGHQeFdg

При заливке скетча, он должен выглядеть вот таким образом:

скетч_гирлянда.jpg

Тоесть в нем должно быть много вкладок, каждая вкладка отвечает за свой эффект.

Во вкладке “anim.h” содержатся настройки для светодиодной ленты:

К сожелению на момент снятия видео у меня не было елки, поэтому гирлянда лежит на полу, но мне кажется все равно получилось не плохо.

Демонстрация работы гирлянды в видео:

—>Используемые источники:

  • https://arduinomaster.ru/datchiki-arduino/adresnaya-svetodiodnaya-lenta/
  • https://alexgyver.ru/ws2812b-fx/
  • http://psenyukov.ru/гирлянда-на-адресных-светодиодах-ws2812b-и-arduino/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации