Адресная диодная лента WS2812 144led/m
Description
Принцип работы 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бита) для установки нового цвета. Информация о цвете передается побитно (начиная со старшего бита) последовательно для каждой из составляющей цветов G, R, B.
Пиксели соединяются в цепочку следующим образом:
Запись значений цвета цепочке пикселей происходит следующим способом:
Первые 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 имеется 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бита) для установки нового цвета. Информация о цвете передается побитно (начиная со старшего бита) последовательно для каждой из составляющей цветов G, R, B.
Пиксели соединяются в цепочку следующим образом:
Запись значений цвета цепочке пикселей происходит следующим способом:
Первые 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-ми), убираем бит четности, оставляем один стоп-бит и получаем следующую картинку:
Technical Details
Количество светодиодов: | 144 |
Напряжение: | 5 |
Степень защиты IP: | 20 |
Price history chart & currency exchange rate
Customers also viewed

608.02 грн.
Car Modification Fittings Ball Steering Wheel Quick Disassembly Device Racing Game Quick Release Device
aliexpress.com
883.58 грн.
Game Identity Ⅴ Frederick Kreiburg 10cm Starfish Body Dango Cosplay Pendant Keychain Xmas Gifts
aliexpress.com
2,793.45 грн.
City vendita calda Street View Modular Downtown Bookshop idee creative fai da te giocattolo per bambini regalo compleanno Blocks
aliexpress.com
2,796.34 грн.
Portable Folding Collapsible Aluminum Cart Dolly Pull Truck Carring Trolley Black Tool Cart Storage with 4 Wheels Luggage Cart
aliexpress.com
1,117.05 грн.
Women's Sneakers Purple Fashion Casual Woman Sneakers Tennis Female Vulcanized Shoes Autumn winter Women's Sports Shoes New
aliexpress.com
1,034.96 грн.
HT10X21-311 Tablet Monitor New 10.4 Inch 1024X768 IPS LCD Display Screen with HDMI+VGA LCD Controller Board in Stock
aliexpress.com
1,191.71 грн.
Spring and Summer Women's Clothing New Pleated Suspender Dress Miyake Temperament Thin Shoulder Strap Split Straight Skirt Long
aliexpress.com
1,163.66 грн.
Модель автомобиля Mercedes-Benz BRABUS G550, приключения, 4X4, литой металлический сплав
aliexpress.com
735.90 грн.
Color Changing LED Floodlight New Outdoor Park Courtyard Landscape Colorful RGB Floodlight with Remote Control 30W 50W 100W 200W
aliexpress.com
2,569.46 грн.
Solar Underwater Lights Outdoor RGB Waterproof Garden Pool Yard Landscape Spotlights Pond Aquarium Fish Tank Decor Solar Lamp
aliexpress.com
225.64 грн.
1 ~ 20 шт. необычная Новинка для Хэллоуина, детская тыква, автомобиль, развлечение для детей, маленькая игрушка, летучая мышь, призрак, детский подарок
aliexpress.ru
276.79 грн.
Blue Village Reusable Mouth Mask Washable Adjustable Straps Face Mask With Filter PM2.5 Women Anti Dust Windproof Anti Flu Masks
aliexpress.com10.65 грн.
500 Pcs Stiker Label Sanrio Kuromi Cinnamon Melody Hello Kitty Thank You Sticker 2.5cm Bulat ST001
shopee.co.id
329.18 грн.
Popular Animated Goku Decorative Carpets Square Flannel Cartoon Carpets Modern Home Living Room Floor Mats Bedroom Rug
aliexpress.com
705.79 грн.
French retro rivet sandals women's 2022 new summer all-match women's one-word high-heeled Roman sandals
aliexpress.ru
254.10 грн.
Сланцы женские с большим бантом, пляжная обувь, однотонные удобные тапочки на плоской подошве, Ретро стиль, летняя одежда
aliexpress.ru
140.25 грн.
Natural Stone Moonstone Gravel Degaussing Stone Aromatherapy Small Particles Home Decoration Paving Stone Purifying Stone Gravel
aliexpress.ru
123.34 грн.
Abstract Art Flower Canvas Prints Tulip Almond Blossom Poster Vintage Impressionist Flowers Prints Living Room Decor Gift
aliexpress.ru
4,769.33 грн.
Luxury Wooden Wall Clock Retro Nordic Vintage Wall Clock Creative Minimalist Living Room Zegar Scienny Home Decoration OO50ZB
aliexpress.ru
668.25 грн.
200Cc250Ccatv Motorcycle Modified Electric Radiator Cooling Fan Oil Cooler Water Cooler Electric Radiator Cooling Fan
aliexpress.com
1,539.45 грн.
Держатель для кистей для макияжа, портативный дорожный Органайзер большой вместимости, многофункциональная сумка для хранения косметики
aliexpress.ru
684.75 грн.
Многопортовая пластиковая сушилка, сушилка, вращающаяся многофункциональная складная вешалка для шарфа с девятью отверстиями, модель TSLM1
aliexpress.ru
152.21 грн.
350ml 12oz Egg Shape Cup Double Wall Vacuum Stainless Steel Sublimation Blanks Glitter Shimmer Straight Wine Tumbler Mugs
alibaba.com
1,402.09 грн.
Wholesale beauty Eye instrument for Anti-Aging Anti-Wrinkle Reduce Eyes Puffiness Dark Circle Facial Massager Wand
alibaba.com
173,336.62 грн.
Foxtech Seeker-20 20X Zoom AI Automatic Recognition and Tracking UAV Camera
alibaba.com
1,115.81 грн.
Чехол для iPad 2021, 10,2, 2020, 2019, 2018, Mini 5 Pro, 11, 9,7, Air 3, 4, 10,5, 8, 7, 6 поколения, умный чехол с держателем для карандашей
aliexpress.com
166.65 грн.
Tapetes Baby Bamboo Fiber Changing Mat Pads Baby 3D Diaphragm Pads High Quality Waterproof Mattress Baby Care
aliexpress.com
1,001.69 грн.
Аккумулятор Pitatel "BT-448", для ноутбуков HP Pavilion tx1000/tx1100/tx1200/tx1300/tx2000, BT-448
goods.ru
5,822.85 грн.
Fit For BMW G30 G38 535i 530i 2017-2019 ABS / Carbon Fiber Exterior Rear Spoiler Tail Trunk Boot Wing Decoration Car Styling
aliexpress.com
1,291.95 грн.
2019 Summer Breathable Canvas Shoes Men's Ulzzang Versatile Casual Shoes MEN'S Cavas Shoes Street Fashion Man Skate Shoes
aliexpress.com
2,823.97 грн.
Hot Sale Toilet Paper Holder Black Wall-Mounted Multifunction Tissue Basket Roll Paper Organizer Storage Rack for Bathroom
aliexpress.com