Кошик
1537 відгуків
+380 (68) 424-08-77
+380 (98) 803-21-59
Перша гуртівня електрики
Кошик
Новинка

Адресна діодна стрічка WS2812 144led/m

420 ₴/м

Показати оптові ціни
  • В наявності 29 од.
  • Оптом і в роздріб
  • Код: WS2812 144led/m
Адресна діодна стрічка WS2812 144led/m
Адресна діодна стрічка WS2812 144led/mВ наявності 29 од.
420 ₴/м
+380988032159
  • +380 (68) 424-08-77
    Менеджер
  • +380 (98) 803-21-59
    Менеджер
+380988032159
  • +380 (68) 424-08-77
    Менеджер
  • +380 (98) 803-21-59
    Менеджер
повернення товару протягом 14 днів за домовленістю
У компанії підключені електронні платежі. Тепер ви можете купити будь-який товар не покидаючи сайту.

Принцип роботи 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), прибираємо біт парності, залишаємо один стоп-біт і отримуємо таку картинку:

Характеристики
Основні атрибути
Колір світінняRGB (різнокольоровий)
СтанНовий
ВиробникBTF-Lighting
Ширина12 мм
Основні
Кількість світлодіодів144
Ступінь захисту IP20
Напруга5
Користувальницькі характеристики
Максимальна потужність43
ТипSMD
Клас стрічкиПреміум
Додаткові характеристики
Мінімальна робоча температура-25 град.
Максимальна робоча температура60 град.
Інформація для замовлення
  • Ціна: 420 ₴/м