ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL
РадиоЛоцман - Все об электронике

Управление несколькими светодиодными полосами, основанными на WS2812B

Worldsemi WS2812B

Журнал РАДИОЛОЦМАН, октябрь 2018

Ivan Serrano

EEWeb

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

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

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

Светодиодные полосы на основе WS2812B

WS2812B – это популярный интеллектуальный светодиодный модуль, состоящий из RGB светодиодов и схемы управления, объединенных в одном корпусе типоразмера 5050. Каждый модуль имеет всего четыре вывода: VCC (5 В), GND, вход данных и выход данных. Для его питания требуется напряжение 5 В. Ток, потребляемый каждым модулем, достигает 50 мА, когда все три светодиода R, G и B полностью включены.

Отдельные модули WS2812B соединены последовательным шлейфом вдоль полосы, а несколько полос, в свою очередь, можно соединить друг с другом (Рисунок 1). Каждому из RGB светодиодов внутри модуля WS2812B можно присвоить десятичный номер от 0 до 255 (от 0x00 до 0xFF в шестнадцатеричном виде). Что касается отдельного RGB светодиода, общее число комбинаций цветов составляет 16,777,216.

Полоса светодиодных модулей WS2812B, отображающих разные цвета.
Рисунок 1. Полоса светодиодных модулей WS2812B, отображающих
разные цвета.

В простой «управляемой ШИМ» ленте RGB светодиодов один сигнал ШИМ подается на все красные светодиоды, второй – на все зеленые, и третий – на все синие светодиоды. Поэтому все модули в ленте могут светиться только одним цветом.

Для сравнения, каждый модуль WS2812B содержит три канала ШИМ, по одному на каждый из светодиодов. Это означает, что в одно и то же время каждый модуль может светиться своим собственным цветом.

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

Временная диаграмма управления модулем WS2812B

Если аппаратные соединения между модулями WS2812B просты – питание (5 В и GND) и данные (выходной сигнал одного модуля идет на вход следующего модуля), – то о протоколе связи этого сказать нельзя. В модулях WS2812B используется однопроводный интерфейс с протоколом NRZ. Пакет данных, содержащих значения RGB, посылается со скоростью 800 Кбит/с.

Представление «0» и «1» в коде NRZ для модуля WS2812B.
Рисунок 2. Представление «0» и «1» в коде
NRZ для модуля WS2812B.

Пакет передается после периода сброса (RET или RES), когда сигнал данных удерживается на низком уровне более 50 мкс. Как видно из Рисунка 2, и «0», и «1» начинаются с «лог. 1», а разница между ними заключается в относительной длительности состояний высокого (TxH) и низкого (TxL) уровней (Таблица 1).

Таблица 1. Временные соотношения сигналов передачи данных
T0H Код 0, длительность высокого уровня 0.35 мкс ±150 нс
T1H Код 1, длительность высокого уровня 0.9 мкс ±150 нс
T0L Код 0, длительность низкого уровня 0.9 мкс ±150 нс
T1L Код 1, длительность низкого уровня 0.35 мкс ±150 нс
Время передачи данных (TxH + TxL = 1.25 мкс ± 150 нс)
СБРОС Длительность низкого уровня Более 50 мкс  

Поскольку цвет каждого RGB светодиода задается с использованием 8 бит, для определения цвета каждого модуля WS2812B требуется 24 бита. На Рисунке 3 показана 24-битная последовательность, адресованная одному модулю WS2812B. Данные посылаются в порядке G-R-B, причем младший значащий бит передается первым.

Представление «0» и «1» в коде NRZ для модуля WS2812B.
Рисунок 3. 24-битный пакет данных для модуля WS2812B. Младший значащий бит зеленого
цвета (G7) передается первым.

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

Важные соображения

Одним из важных соображений при выборе микроконтроллера для управления модулем WS2812B является скорость и рабочее напряжение. WS2812B питается напряжением 5 В, и выходной сигнал, управляющий входом данных модуля, также должен быть 5-вольтовым. Кроме того, важно, чтобы быстродействия микроконтроллера было достаточно для формирования правильных пакетов данных NRZ.

Хотя, согласно техническому описанию, скорость передачи данных WS2812B составляет 800 кбит/с, микроконтроллер, как следует из требований к параметрам T0H или T1L, должен обрабатывать сигналы длительностью от 0.35 с. Высокопроизводительный микроконтроллер без проблем обеспечит это через интерфейс SPI. Но не все младшие 8-битные микроконтроллеры способны легко передавать данные на такой скорости. Например, для того, чтобы соблюсти правильные временные соотношения, в библиотеках для плат Arduino Uno и Mega с 16-мегагерцовыми микроконтроллерами используются подпрограммы, написанные на низкоуровневом ассемблере.

Разумеется, разработчикам встраиваемых систем проще всего было бы использовать быстродействующий 32-разрядный микроконтроллер, однако стоимость такого решения не может быть конкурентоспособной. В нашем случае мы выбрали 8-разрядный микроконтроллер PIC18F2620 с тактовой частотой 8 МГц и написали драйвер на ассемблере.

Независимо от того, используете ли вы для передачи данных манипуляцию битами или интерфейс SPI, вы должны сделать так, чтобы передача данных на светодиодную полосу не могла прерываться. Например, для правильного свечения полосы, содержащей 30 модулей WS2812B, требуется непрерывной последовательностью передать 720 бит кода NRZ со значениями RGB.

Строгое требование к непрерывности передачи может также привести к увеличению объема памяти. Полосе из 30 модулей WS2812B потребуется 90 байт памяти для хранения значений яркости RGB. Каскадирование пяти полос увеличит это число до 450 байт. В приложениях с небольшим объемом памяти это может быть фактором, ограничивающим количество полос.

В отличие от обычных трехцветных светодиодов, модули WS2812B при первом включении светиться не будут. Они загорятся только после того, как примут соответствующие значения RGB. Из-за этого управлять модулями WS2312B намного сложнее, чем отдельными светодиодами. Работать будет проще, если у вас есть анализатор протоколов, который поможет убедиться, что код драйвера формирует правильный сигнал NRZ.

Технические проблемы при подключении нескольких полос на основе WS2812B

Успешное включение одной полосы на основе WS2812B не означает, что вы не столкнетесь с проблемами, когда соедините нескольких таких полос вместе. Например, соединение полос обычно требует пайки, и важно, чтобы пайка была выполнена качественно, поскольку даже небольшой дефект может негативно влиять на передачу данных.

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

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

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

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

Материалы по теме

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Controlling Multiple WS2812B-Based LED Strips

43 предложений от 15 поставщиков
5V_порядка 60mA на один пиксель_Светодиод RGB со встроенным ШИМ-контроллером (светодиод с пиксельной адресацией) _4 контакта_частота 400 Гц_Intelligent control LED integrated light...
ЗУМ-СМД
Россия
WS2812B-V5
Worldsemi
0.52 ₽
WS2812B-Mini
Worldsemi
от 10 ₽
Промэлектроника
Россия и страны СНГ
WS2812B-V5
Worldsemi
10 ₽
WS2812B-V4
Worldsemi
от 26 ₽
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Что хотелось отметить. 3 линейки светодиодов, хоть и не включены по 3_х фазной схеме, но все равно способна убрать так называемый стробоскопический эффект приустановке у станков (вращающихся механизмов). Уберется возможность ремонта частными лицами. К недостаткам относится дороговизна комплектации на изделие, а значит и самого изделия. Если уж так сильно хочется - закажите хоть в том же китае капли, спец. микросхема в массовом потреблении Вам обойдется в 25 раз дешевле.
  • Друже , а что до этого до станков частных чиц допускали ? ;) И ещё про беды с этими игрушками : друг покупает их 1500р по-моему за 2 метра , ну делает светоэффекты ... однако дороговизна не самое больное место - стоит одной ячейке ближе к контроллеру гавкнуть - все остальные теряют способность програмно управляться .
  • Гумно эти WS2812B, заказывал у разных продавцов с промежутком в полгода -год эти ленты -делал подсветку монитору. Через месяц-другой работы вылетает какойнибудь лед изза чего вся лента начинает ужасно мерцать. Сначала обрезал дорожки и пускал сигнал в обход дохлого леда, когда на ленте набралось уже с пяток таких перемычек поменял ленту на другую (шаг диодов другой, другой поставщик) - результат такой же - через месяц опять начинает мигать прям во время просмотра фильма! В итоге достало это, решил отказаться от этих диодов вообще! Интересно бы узнать опыт тех, кто как тут в статье написано занимается "созданием архитектурного освещения" ))
  • Есть в Китае несколько компаний по сборки этих светиков. Проблема первых версий это низкая их защита от статического электричества буквально уровень в 12 вольт выводит из со строя, Для защиты "первого светика" самый простой вариант это поставить на входе резистор, а за ним для надежности супрессор вольт на 5. В следующие версии они довели до ума. Но наклепано светиков море и что вы будете покупать никому не известно. Второй недостаток, эти светики не понимают логических уровней и при этот если у вас 5 вольтовый МК, проблем не возникнет, а если 3 вольтовый, то надо делать согласование уровней. По скорости передачи данных, тоже будут проблемы, чем их больше , тем надо длиннее делать начальный импульс синхронизации и при этом скорость реальная намного ниже от заявленной получается. Из варианта светиков со встроенным драйвером я бы рекомендовал APA102 в нем аля SPI (теже 888RGB и 32 уровня общей яркости), для чего можно использовать SPI модуль микроконтроллера, что намного приемлемо.
  • Статика отпадает, лента вместе с ардуинкой приклеена на задней стенке монитора, куда никто не лазает. Про уровни тоже всё ок -контроллер Атмега 328 с 5-вольтовым питанием, как и лента. Синхронизация тоже ок. Но у меня есть догадка - в чем у них проблема. Во время пайки под микроскопом я увидел, что выводы (пады) светодиодов слегка шатаются. Видимо неудачная конструкция падов + размягчение пластика (в который пады вделаны) от нагрева, может чтото еще. От кристалла к падам идут тонкие проволочки типа золотые, которые от таких небольших перемещений падов просто отваливаются. Лента на которой распаяны светодиоды, как и сами светодиоды при работе заметно нагревается, у нее имеется температурное расширение, отсюда пады начинают смещаться туда-сюда при каждом цикле нагрев-охлаждение. Через какоето время количество переходит в качество и какойто светодиод дохнет. Какое в данном случае преимущество у АРА102 -не понятно, корпус вроде бы у них такой же.
  • Б... Вроде все все взрослые люди , а в сказки верите... На сарае Хрен написано, а там дрова лежат...
Полный вариант обсуждения »