Умные светодиоды WS2812B NeoPixels

Светодиоды (пиксели) WS2812B и светодиодные ленты на базе этих пикселей довольно популярны и это оправдано по нескольким причинам:

— компактность — пиксель содержит в своем корпусе (размером всего 5х5 мм) 3 светодиода и драйвера для них 
— простота управления – пиксель управляется посредством простого последовательного интерфейса, который легко реализовать как программно, так и используя аппаратные интерфейсы МК (такие как SPI и UART)
— управление всего по одной линии (не считая проводов питания)
— неограниченное количество включенных последовательно пикселей
— относительно небольшая стоимость (если посчитать стоимость отдельно 3х светодиодов и драйверов к ним выйдет гораздо дороже)

Эта статья попытка обобщить информацию (наверное, больше для себя) об умных светодиодах WS2812B в одном месте.

Начнем знакомство с серией WS

Первым идет WS2801

Фактически, это не светодиод а микросхема-драйвер для RGB-светодиода с последовательным интерфейсом SPI (есть линия данных и тактовая линия). Эти микросхемы используются во встраиваемых конструкциях пикселей:

Есть и ленты с использованием этих драйверов, но, наверное, их не найти уже.

WS2801.pdf - Даташит


Дальше — WS2811

Это тоже микросхема для управления RGB-светодиодом, но она уже компактней (8 ног, в отличие от WS2801 — 14 ног) и имеет однолинейный последовательный интерфейс.

WS2811.pdf - Даташит


Приближаемся — WS2812(S)

Это уже интегрированные в SMD корпусе 5050 и драйвер и сами светодиоды. Корпус 6-ти ножечный

Как и в предыдущем WS2811 интерфейс однолинейный, но тайминги протокола другие несовместимые.

WS2812.pdf - Даташит


И, наконец, WS2812B

Это почти аналог предыдущего светодиода, но уже с 4-мя ножками и слегка измененными таймингами протокола (совместимы, при использовании компромиссных значений временных периодов сигналов)

WS2812B.pdf - Даташит


Еще существует WS2812D (аналог PD9823)

Это полностью WS2812B но в корпусе обычного 8мм светодиода.

WS2812D.pdf - даташит


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


Принцип работы WS2812B — официальная информация из даташита.

Физически в WS2812B имеется 3 излучающих светодиода (красный, синий и зеленый) и ШИМ-драйвера управляющие их яркостью. ШИМ-драйвера 8-ми битные, то есть для каждого из цветов возможны 256 градаций яркости и, соответственно, для того чтобы установить яркости для каждого из 3-х светодиодов нужно передать пикселю 8х3=24 бит (3 байта) информации. Протокол передачи информации светодиоду однолинейный с фиксированной скоростью. Единички и нули информации о яркости кодируются длительностью высокого и низкого уровня сигнала в линии.

Время передачи одного бита составляет  0.8+0.45=1.25 мкС — это довольно быстро. Время передачи всего пакета из 24 бит для одного пикселя WS2812B составляет 24*1.25=30 мкС. Для 1000 штук — 1000*30=30 мС (что, например, позволяет обновлять по одной линии панно 30х30 пикселей с частотой 30 раз в секунду!).

Каждый из пикселей WS2812B имеет 2 вывода питания (VDD, VSS), вход (DIN) и выход (DOUT).

На вход DIN подается информация (24бита) для установки нового цвета. Информация о цвете передается побитно (начиная со старшего бита) последовательно для каждой из составляющей цветов GRB.

Пиксели соединяются в цепочку следующим образом:

Запись значений цвета цепочке пикселей происходит следующим способом:
Первые 24 бита поданные на DIN записывает себе во временную память (цвет пока остается неизменным с предыдущего раза) первый пиксель. Последующие биты первый пиксель пропускает через себя и выдает на выход DOUT. Второй пиксель повторяет действия первого (оставляя себе первые дошедшие до него 24 бита)  и так по цепочке. Для того, чтобы значения цветов из временной памяти пикселей стали активными должна быть выдержана пауза в передаче (reset code) в течении 50мкС. После этой паузы цикл можно повторять снова.

Вот это основное, что нам говорит довольно скудный даташит.


Теперь более интересная часть – 
Практические способы включения ленты и реализации протокола WS2812B.

То, о чем умалчивает даташит, я собрал из разных источников у людей имевший практический опыт работы с WS2812B. Конечно, это больше касается лент.


Для начала, общие советы

— подключайте к ленте (между линиями питания) конденсатор побольше, вплоть до 1000 мкФ

— в разрыв линии данных (от МК к ленте) добавляйте резистор  300 — 500 Ом, устанавливая его ближе к ленте.

— по возможности, делайте короче провод данных к ленте

— при «горячем» подключении ленты, подключайте «землю» первой (отключайте последней)

— если лента запитана от отдельного источника питания, ее нужно запитать первой (после чего запитать схему управления)

— не допускайте статического электричества при монтаже ленты

— используйте преобразователь уровня, если лента и устройство управления запитаны от источников питания с разным напряжением

— напряжение питания пикселей, заявленное в даташите, лежит в пределах +3.5 ~ +5.3 вольт. Из чего видно, что предпочтительней подавать на ленту меньше 5ти вольт (этим правилом следует пользоваться при выборе количества элементов при батарейном питании)

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

Соответственно:
минимальный  ток ИП = 20мА*количество_пикселей. 
максимальный  ток ИП = 60мА*количество_пикселей

— из последнего пункта вытекает следующее: если лента длинная, то недопустимо подавать на нее питание только с одной стороны. Для того чтобы исключить перегревание (или даже перегорание) токопроводящих дорожек ленты, питание ленты необходимо распределить по всей ее длине, подводя питание в нескольких местах отдельными проводами.


Теперь более ценные советы по реализации протокола

Есть несколько способов реализовать протокол умных светодиодов:
— аппаратный при помощи SPI-интерфейса
— аппаратный при помощи UART-интерфейса
— программный

Достоинство первых двух способов – это возможность освободить МК от части работы по передаче бит информации о цвете пикселю. Недостатки этих способов – во-первых, ограниченное количество линий управления пикселями (у МК редко бывает много незадействованных интерфейсных выходов), во-вторых, требуется дополнительное разбитие байтов информации о цвете на пачки битов (что частично съедает свободное время МК в моменты аппаратной передаче бит)


Реализация протокола WS2812B (NeoPixel) при помощи SPI

Прежде, чем приступить к реализации, следует акцентировать внимание, что у WS2812B кодирование нулей и единичек происходит по правилу 1/3 (смотрите даташит выше). То есть ноль передается как 1/3 времени высокий уровень и 2/3 низкий. Единица – это 2/3 высокий и 1/3 низкий. Из этого следует, что для передачи одного бита для  WS2812B нам достаточно 3х бит переданных по SPI.

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

Но есть решение этой проблемы! Забегая наперед, сообщу, что для пикселя важна длительность периода высокого уровня, а низкий уровень может быть с бОльшим отклонением, чем указано в даташите. Поэтому мы может удлинить наши цепочки бит SPI с трех до четырех:

Вот теперь алгоритм становится более простым и приемлемым к реализации.

Для выдачи информации на пиксели используется только один вывод SPI – MOSI. Выводы MISO и SCK остаются незадействованными. Частота SPI должна быть 1/0.4мкС = 2.5МГц


Реализация протокола WS2812B (NeoPixel) при помощи UART

Все, о чем я писал для SPI, подходит и для UART, но тут есть несколько моментов, которые усложнят реализацию:

— UART в паузах удерживает свою выходную линию (TXD) в высоком уровне, что для пикселей недопустимо, так как невозможно будет избежать неопределенностей в моменты начала и окончании передачи

— соответственно, нужно инвертировать сигнал перед подачей его на пиксели

— а, так как линия инвертируется, нужно инвертировать и передаваемые данные

— UART-пакет, в отличии от SPI, содержит служебные биты – это старт-бит и стоп-бит (бит четности нужно отключать в настройках UART — он не нужен). Дополнительные биты служебной информации нужно учитывать при формировании передаваемого байта, так как они тоже пойдут в пиксель

В итоге, если учесть все нюансы, получается идеальная реализация протокола. Устанавливаем скорость UART 2.5 МГц (это нестандартно), устанавливаем размер кадра 7 бит (вместо стандартных 8-ми), убираем бит четности, оставляем один стоп-бит и получаем следующую картинку:


Купить дешевые светодиодные ленты можно на алиэкспресс 

WS2812B 5050 RGB (Кликабельно )

Выбор самых разных модулей и лент на базе управляемых светодиодов

Так же не забываем о экономии при покупке товаров на Алиєкспресс с помощью кэшбэка 

Для веб администраторов и владельцев пабликов  главная страница ePN

Для пользователей покупающих на Алиэкспресс с быстрым выводом % главная страница ePN Cashback

Удобный плагин кэшбеэка браузерный плагин ePN Cashback

  • Умные светодиоды WS2812B NeoPixels

Похожие статьи

Как выиграть спор на Алиэкспресс. Причины и советы.

Как выиграть спор на Алиэкспресс. Причины и советы.

Пообщайтесь с подавцом перед оплатой.

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

Подключение 7-сегментного индикатора к Ардуино

Подключение 7-сегментного индикатора к Ардуино

Сегодня я расскажу о подключении светодиодного индикатора АЛС334Б к Ардуино.
Для своих часов-будильника я решил выбрать индикацию вполне привычными светодиодными семисегментными индикаторами.

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

Рекомендуемые товары

очки MAX&Co 285/S VDQ543U

очки MAX&Co 285/S VDQ543U

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

2 600грн.

очки Marc By Marc Jacobs MMJ 429/S KTW/SQ

очки Marc By Marc Jacobs MMJ 429/S KTW/SQ

Пол:унисекс, мужские, женскиеФорма очков:прямоугольныеБренд:Marc By Marc JacobsЦвет оправы:коричневы..

2 886грн.

очки Marc By Marc Jacobs MMJ 435/S MPZ/SK

очки Marc By Marc Jacobs MMJ 435/S MPZ/SK

Пол:женскиеФорма очков:бабочкаБренд:Marc By Marc JacobsЦвет оправы:черныйЦвет линзы:синийМатериал оп..

3 380грн.

Очки Ray-Ban Aviator Flash Lenses RB3025 167/2K

Очки Ray-Ban Aviator Flash Lenses RB3025 167/2K

Оправа: гипоаллергенная нержавеющая сталь / матовый бронзовыйЛинзы: минеральное стекло / к..

2 886грн.

Очки Ray-Ban Aviator Full Color RB3025JM 146/32 White/Shiny Gold | Gradient Gray

Очки Ray-Ban Aviator Full Color RB3025JM 146/32 White/Shiny Gold | Gradient Gray

Страна производства: ИталияОправа: гипоаллергенная нержавеющая сталь в пластике / благород..

3 900грн.

Солнцезащитные очки MAX&Co 296/S TQX 3U

Солнцезащитные очки MAX&Co 296/S TQX 3U

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

3 380грн.

Солнцезащитные очки MAX&Co 288/S VQI49SB

Солнцезащитные очки MAX&Co 288/S VQI49SB

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

3 380грн.

очки VOGUE 2941S 239211 56

очки VOGUE 2941S 239211 56

Женские солнцезащитные очки из облегченного пластика..

2 600грн.

Пластиковый бокс для хранения деталей

Пластиковый бокс для хранения деталей

Пластиковый бокс для хранения деталей..

42грн.

Теги: Умные светодиоды WS2812B NeoPixels