Адресные светодиоды
В одном из предыдущих уроков мы уже познакомились с обычным светодиодом и с его более комплексной версией — RGB светодиодом. Зажигать и гасить светодиод можно и безо всякого контроллера, подавая на него ток от обычной пальчиковой батарейки. Однако, чтобы управлять сразу группой светодиодов, да ещё и не просто включать/выключать, а менять их яркость, потребуется немного больше знаний и навыков.
Взять к примеру ту же светодиодную матрицу 8×8. Чтобы вывести на нее изображение, понадобится освоить принципы динамической индикации и разобраться со сдвиговыми регистрами. Отчасти проблему решают специализированные микросхемы, типа MAX7219 или HOLTEC16K33, но у них тоже есть свои ограничения. У нас, кстати, есть уроки на эту тему: матрица на max7219 и матрица 8×8 ROC.
Всё ещё более усложняется, когда нам нужно управлять не просто множеством светодиодов, но еще и разными цветами и с разной интенсивностью свечения. Это бывает необходимо, когда из светодиодов строится огромный уличный дисплей. Тут в дело идёт тяжелая артиллерия: мощные системы на основе STM32 старших серий либо контроллеры на основе ПЛИС.
К счастью, есть более простое и дешевое решение, которое позволяет DIY-щику без глубоких знаний в программировании управлять RGB светодиодами, причём адресно и с возможностью менять яркость каждого светодиода в системе. Светодиоды, которые позволяют всё это делать называются адресными. Самый популярный на данный момент представитель этих «умных» RGB модулей называется WS2812b.
На этом уроке мы разберём как устроен WS2812b, подключим к Ардуино линейку из 8 адресных светодиодов и попробуем реализовать различные забавные алгоритмы.
Надо сказать, что все программы из этого урока будут работать на любом контроллере: Ардуино, esp8266, esp32 и даже на платах DigiSpark со слабым чипом Attiny.