Адресуемая светодиодная RGB лента и LED драйвер WS2811

RGB светодиодные ленты удобно применять для декоративной подсветки витрин, салона машины, вывесок… С ними легко работать, в отличие от простых светодиодов, т.к. токовые ограничители уже стоят, достаточно просто подать нужное напряжение. Возможность, нарезать на сегменты, даёт гибкие возможности при монтаже.

А что, если хочется большего? что если нужно управлять каждым диодом в отдельности? Можно поставить МК, но не каждый микроконтроллер в одиночку потянет множество трехцветных диодов, можно попробовать поставить к каждому. Для таких целей есть специальные светодиодные драйверы, некоторые из которых снабжены возможностью управляться с одной общей, или последовательно проходящей через драйверы, шиной. Где-то пошли дальше, и такой драйвер встроили прямо в RGB светодиод, которому нужен минимум внешней обвязки. Далее последовательно соединённые такие диоды разместили на светодиодной ленте – и в итоге мы получили адресуемую светодиодную ленту.

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

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

Как не трудно догадаться, в статье речь пойдёт о светодиодном RGB драйвере – WS2811, которые соединяются последовательно и управляются по однопроводной линии данных. И адресуемой светодиодной ленте на совмещенных RGB диодов с такими драйверами.

RGB светодиоды со встроенными WS2811

RGB светодиоды со встроенными WS2811

Как видно на фотографии – такая светодиодная лента состоит из множества последовательно соединённых RGB светодиодов со встроенными драйверами WS2811 (маленькая чёрная точка по середине). Из обвязки такая микросхема, при питании от 5В, требует всего один конденсатор в 0.1мкФ по входу питания, ещё рекомендуется 33Омный резистор на линии данных, который, видимо, производитель упустил.

Схема подключения светодиодов к ws2811 (из datasheet)

Схема подключения светодиодов к ws2811 (из datasheet)

Все диоды сидят последовательно на одной линии. Что бы изменить их отображаемый цвет и его интенсивность нужно первому диоду отправить посылку содержащего обращение к каждому из диодов на ленте. Первый драйвер получает всю посылку и передает её дальше за вычетом последнего пакета, который он списывает на свой счёт. Аналогично происходит со всеми оставшимися сборками светодиод-драйвер. Посылка завершается специальной командой RES, которая выделяется длительным низким уровнем сигнала, получив её – все диоды применят свои новые состояния.

Формат сообщения

Каждый пакет состоит из 24 бит – по 8 бит на каждый канал, в итоге имеем по 255 градаций каждого цвета или 16 миллионов цветов. Каждый бит содержит положительный и отрицательный полупериод, кодирование ноля или единицы осуществляется длительностью полупериодов.

Кодирование 1,0 и RES

Для работы с адресуемой светодиодной лентой был собран контроллер на базе микроконтроллера PIC16F688 и преобразователя USB интерфейса cp2102 на специально ранее заготовленной универсальной заготовке платы (заказанной на itead studio), поэтому печатку приводить не буду.

Схема

Схема

Такая светодиодная лента очень прожорлива, её метр с 60 светодиодами на максимуме кушает более 2-х ампер, так что понадобиться хороший и мощный источник питания. Можно ей дать и меньший ток, но тогда она будет гореть с преобладанием красных оттенков.

Управляющий контроллер

Управляющий контроллер

Прошивка писалась на скорую руку. Был реализован следующий алгоритм работы: сначала в микроконтроллер с компьютера скидывается вся посылка и только после этого она её отображает. Из-за малого количества RAM памяти слабого микроконтроллера получилось реализовать буфер только на 60 адресуемых светодиодов с драйверами WS2811. Из-за средней скорости UART в 38400 скорость обновления всей ленты составляет примерно 50 мс, т.е. максимальная допустимая частота обновления вышла в 20 кадров/секунду. Чего для демонстрации возможности ленты мне хватило. Генерацией всех эффектов занимается специальная программа на ПК, которая то же писалась на скорую руку.

Окно программы

Управляющий контроллер

Формат отправляемых команд контроллеру:
Отправка производиться по UART на скорости 38400 8N1.

  • Первый байт – пробел (32 ASCII int код)
  • Второй байт – длина передаваемой посылки (количество светодиодов), от 0 до 60 (передаётся байтом)
  • Далее по 3 байта, в порядке GRB (зеленый, красный, синий), передаются величины ШИМ для каждого светодиода начиная с противоположного конца ленты.

Контроллер отвечает на начала обмена по UART ASCII символом !, по успешному завершению отправки пакета ASCII символом b .

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

Видео работы ленты

Скачать файлы проекта

Скачать программу управления

Дополнение от 1.09.2015

Для удобства проверки конструкции добавляю в статью прошивку с автономным плавным последовательным псевдо-случайным переливанием (до 60 светодиодов). Если одного данного эффекта достаточно, то можно упростить схему убрав из неё cp2102.

Скачать автономную прошивку (последовательное переливание)

Скачать исходник автономной прошивки (последовательное переливание)

31 комментарий »

Alex_EXE | 23.04.2014 | Светотехника | 15 914 просмотров

31 комментарий на « Адресуемая светодиодная RGB лента и LED драйвер WS2811»

  1. Alex_EXE пишет 30.09.2016 в 17:58 #

Комментарии RSS

Оставьте отзыв