Каждый светодиод — свой цвет и яркость, а провод данных один. Ленты, кольца, матрицы — управление одинаковое.
Как работает
В каждом корпусе WS2812B — три светодиода (красный, зелёный, синий) и микросхема, которая принимает свои 24 бита цвета и передаёт остальные дальше по цепочке. Данные идут на DIN со скоростью 800 кбит/с.
Библиотеки: Adafruit NeoPixel (strip.setPixelColor(i, r, g, b) и strip.show()) или FastLED — быстрее и с эффектами.
Главный расчёт — питание: до 60 мА на светодиод при белом на полной яркости. Метр ленты на 60 светодиодов — до 3,6 А.
⚡ В примере «WS2812B (NeoPixel)» питается от 3V3 — в симуляторе так проще, и модель это допускает. Настоящий модуль рассчитан на 5 В: подключайте VCC к VIN (5 В от USB) или к отдельному источнику 5 В с общей землёй.
#include <Adafruit_NeoPixel.h>
const int PIN = 5, COUNT = 8;
Adafruit_NeoPixel strip(COUNT, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.setBrightness(40); // на полной яркости лента ест много тока
strip.show();
}
void loop() {
for (int i = 0; i < COUNT; i++) {
strip.clear();
strip.setPixelColor(i, strip.Color(0, 120, 255));
strip.show();
delay(80);
}
}
В железе
В железе: резистор 300–500 Ом в линию данных у ленты, конденсатор 1000 мкФ на питание ленты, земля ленты и контроллера — общая. Уровень 3,3 В от ESP32 для ленты на 5 В — на границе, надёжнее через преобразователь уровней (например, 74AHCT125).
Частые ошибки
Лента питается от вывода 5V платы — при белом цвете ток в амперы, плата перезагружается, лента краснеет к концу. Нужен отдельный блок питания.
Цвета есть в коде, но лента тёмная — забыт strip.show().
Нет общей земли между лентой и контроллером — данные не доходят или светодиоды мигают случайными цветами.
Длинная лента питается с одного конца — дальние светодиоды желтеют из-за падения напряжения. Подводите питание каждые 1–2 метра.