Доброго времени суток, господа. Возникла проблема с управлением тремя адресными светодиодами WS2812 с помощью ESP32.
Схема подключение классическая:
- Питание светодиодов пробовал 3.3V, 4.4V(понижение с 5V через диод) и 5V.
- Общая с ESP32 земля.
- Сигнальный на DIN с 12 GPIO напрямую, дорожкой порядка 2 сантиметров.
Использовал библиотеку FastLED. Проверял точно такой же код на меге 328 - всё работает, с ESP32 же результат нулевой.
Собственно, есть соображения в чем может быть проблема?
Ну ровняйте осцилограмы по клеткам, удобней же смотреть. Не пойму что с уровнем напряжения, должно же быть 5 вольт, ну 3.3, а там 1 вольт на осциллограмме.
У себя повесил SK6805 (он же WS2812, только в другом корпусе) на SPI пин ESP32. Заработало почти сразу. На ногодрыге не получилось - сильно мешает многозадачность и ОС.
Напряжение, кстати, тоже проверьте.
Значения 0x40 / 0x70 выбраны специально, чтобы шина в начале/конце тайм-слота возвращалась в нулевое состояние. Если отправлять 0x80 - шина может зависнуть в "1" после команды.
Код управляет только одним диодом! Но функцию можно переписать для массива светодиодов. Рекомендую использовать её как пример или отправную точку после того, как разберётесь с заниженным напряжением на ваших же скриншотах.