Просмотрел я как то видео пользователя Arduino Prom (огромное ему спасибо за его работу), был скачен (ещё на старом сайте) пользовательский блок под WS2812B. Заказана сама лента, всё пришло, поигрался, порадовался что всё работает и ненадолго забыл.
Настал тот момент, когда решил реализовать практически некий проект. Простенький, это элементарная подсветка, но чтоб можно было менять уровень освещения и цвет подсветки. Лента у меня на 60 светодиодов.
Казалось бы, всё просто и элементарно.
В итоге (постепенно) сформировались хотелки:
- цвет и яркость должны меняться на всех светодиодах одновременно
- возможность регулировки потенциометрами непосредственно руками
- возможность переключения уровня яркости физическими кнопками
- возможность управления лентой по блютус
Наверно это всё можно реализовать и на простой РГБ ленте (даже намного проще) но нет её у меня пока.
Начал собирать схему и накидывать проект. Поставил три потенциометра, покрутил, работают)))) Приколхозил экранчик для наглядности. начал собирать сам проект. Понадобилось установить аж 60 блоков светодиодов в проект, т.к. один блок отвечает за один светодиод... ну да ладно, но
программа стала безбожно тормозить уже на 20 блоках. Раскидал блоки по разным платам... но это уж совсем колхоз получается...
Но всё это сделал, отладил. Работает... но с некоторыми тормозами. Поставил кнопку на переключение режимов, но 10-20 светодиодах всё работает нормально, на всех 60-ти притормаживает.
Поставил модуль блютуса (через RemoteXY всё), и вот тут всё и перестало работать нормально.
переделал пользовательский блок сразу под все светодиоды, не помогло, в общем много чего перепробовал, не помогло, блютус постоянно отваливается, ничего не регулируется, без блютуса все 60 диодов притормаживает...
В итоге блок был переписан с нуля практически (остались только наименования входов))). В старом блоке была использована библиотека Adafruit_NeoPixel.h, в новом я использовал FastLED.h. В итоге всё стало работать без блютуса вообще махом, блютус перестал отваливаться и хоть и с некоторой задержкой но всё регулируется и работает.
Сам блок:
Сам проект, с блютусом, кнопкой и экраном (естественно надо будет подправить адреса под себя) .