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

Перед нами корпус известного светодиода типоразмера 5050, внутри которого виднеется большой черный прямоугольник — микросхема. Вот еще снимок самого чипа под микроскопом.

Существует несколько типов адресных светодиодов. Они отличаются размером корпуса и особенностями чипа. В более старых моделях светодиод и микросхема монтировались на печатной плате раздельно. В этом случае применялся обычный RGB светодиод, например, всё тот же 5050.
Как работает адресный светодиод?
На самом деле, микросхема ws2812b представляет собой доработанный сдвиговый регистр. В уроке про регистры мы подробно описывали его работу. Раз это регистры, мы можем соединять их в цепочку, создавая массивы светодиодов всего с одной линией данных. Но у WS2812b есть и очень важные отличия от обычных сдвиговых регистров, которые кроются в особом алгоритме прохождения данных в цепочке.
Алгоритм протокола ws2812b для нескольких соединенных светодиодов выглядит следующим образом:
- контроллер отправляет 3 байта, кодирующих цвет первого ws2812b;
- первый ws2812b в цепочке принимает цветовой код и на его основе генерирует ШИМ сигнал для каждого из RGB светодиодов;
- затем первый светодиод соединяет вход с выходом, чтобы данные проходили через него без изменений;
- контроллер отправляет 3 байта для следующего светодиода;
- данные свободно минуют первый светодиод и поступают на второй
- и так далее, пока контроллер не сделает паузу 50 мкс, после которой первый светодиод готов будет вновь принимать новый цвет.
То есть, в отличие от сдвиговых регистров, каждая микросхема ws2812b в цепочке умеет фиксировать предназначающийся именно для неё код цвета и держать его сколько угодно долго, пока не появится новый код.