Подключение ленты WS2812B к ESP32
Адресная светодиодная лента
WS2812B подключается к ESP32 тремя проводами: питание 5 В, земля и провод данных DIN на любой GPIO. Библиотека Adafruit NeoPixel формирует нужный сигнал с точностью до долей микросекунды.
Схема подключения ленты WS2812B к ESP32
| WS2812B (NeoPixel) | ESP32 |
|---|---|
| DIN | GPIO5 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «NeoPixel: адресные светодиоды».
⚡ В примере «WS2812B (NeoPixel)» питается от 3V3 — в симуляторе так проще, и модель это допускает. Настоящий модуль рассчитан на 5 В: подключайте VCC к VIN (5 В от USB) или к отдельному источнику 5 В с общей землёй.
Выводы WS2812B (NeoPixel)
| Вывод | Назначение |
|---|---|
| DIN | вход данных |
| VCC | питание 5 В |
| GND | общий провод — общий с контроллером |
Код для ESP32
#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);
}
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- По даташиту DIN должен получать не меньше 0,7 от напряжения питания, то есть 3,5 В при 5 В. Сигнал ESP32 в 3,3 В обычно работает, но на длинной ленте ставят преобразователь уровней 74AHCT125.
- Каждый светодиод на полной белой яркости берёт до 60 мА: лента из 30 диодов — до 1,8 А. Питание подводят отдельно, общая земля с ESP32 обязательна. На DIN ставят резистор 330 Ом, на питание ленты — конденсатор 1000 мкФ.
В железе
В железе: резистор 300–500 Ом в линию данных у ленты, конденсатор 1000 мкФ на питание ленты, земля ленты и контроллера — общая. Уровень 3,3 В от ESP32 для ленты на 5 В — на границе, надёжнее через преобразователь уровней (например, 74AHCT125).
Частые ошибки при подключении к ESP32
- Питать ленту от USB платы: при полной яркости ток превышает возможности порта, и плата перезагружается.
- Нет общей земли у источника ленты и у ESP32: сигнал не распознаётся, светодиоды мерцают.
- Лента питается от вывода 5V платы — при белом цвете ток в амперы, плата перезагружается, лента краснеет к концу. Нужен отдельный блок питания.
- Цвета есть в коде, но лента тёмная — забыт
strip.show(). - Нет общей земли между лентой и контроллером — данные не доходят или светодиоды мигают случайными цветами.
- Длинная лента питается с одного конца — дальние светодиоды желтеют из-за падения напряжения. Подводите питание каждые 1–2 метра.
Ещё по теме
- деталь WS2812B (NeoPixel): подключение к ESP32 и Arduino
- калькулятор Падение напряжения 12 В
Другие детали для ESP32
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637MPU6050 (GY-521)Модуль релеKY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21DSN65HVD230