Контроллер для светодиодов WS2812

 

WS2812 - это RGB светодиод в корпусе 5050 со встроенным ШИМ-контроллером. Принцип работы такого светодиода прост: на вход Din поступает 24 бита информации о состоянии уровня цвета каждого светодиода в корпусе, после чего последующая информация передается через выход Dout на следующий светодиод. 

Как результат, такие светодиоды можно последовательно объединять в ленты, длина которых ограничивается только источником питания и доступной памятью микроконтроллера.

Согласно спецификации, электрические параметры светодиода следующие:

ЦветДлинна волны (нм)Интенсивность (мКд)Ток (мА)Напряжение (В)
Красный620 - 630550 - 700201,8 - 2,2
Зеленый515 - 5301100 - 1400203 - 3,2
Синий465 - 475200 - 400203,2 - 3,4

Протокол общения со светодиодом достаточно прост: передача логического "0" и логической "1" происходит посредством изменения длительности положительного импульса так, как показано на рисунке.

Типичная схема включения светодиодов выглядит следующим образом:

Предлагаемый контроллер реализуется согласно следующей принципиальной схеме. 

Печатная плата, которая реализует изображенную выше принципиальную схему, имеет следующий вид.

Плату необходимо изготовить на листе одностороннего фольгированного стеклотекстолита размером 26 х 38 мм. Типичная ширина дорожек равна 0,6 мм, максимальная 0,8 мм.

Компоненты размещаются в соответствии с принципиальной схемой так, как показано на рисунке ниже.

Объемный рендеринг печатной платы выглядит следующим образом:

Немного о компонентах

Разъем J1 - это micro USB, контактные площадки под него можно переделать в соответствии с разъемом, который будет иметься в наличии. Диод D1 необходим для защиты платы от переполюсовки в случае подключения питания напрямую, не через USB. Этот же диод ограничивает максимальный ток нагрузки. Светодиод D2 используется для индикации состояния контроллера в некоторых режимах роботы. Конденсаторы С1 - С3 ставить не обязательно (т.к. на светодиодных лентах с WS2812 обычно устанавливаются конденсаторы рядом с каждым светодиодом), но желательно.

Контроллер имеет три режима работы:

  1. Режим выбора количества светодиодов.
  2. Режим регулирования яркости каждого канала на всех светодиодах одновременно.
  3. Режим эффектов.

Назначение кнопок:

  • S3 и S2 в первом режиме добавляет (+) и уменьшает (-) количество светодиодов соответственно, а во втором режиме увеличивает и уменьшает яркость выбранного канала.
  • S1 во втором режиме осуществляет переход от одного канала к другому, а в третьем режиме переключает эффекты.
  • Одновременное нажатие S1 и S3 осуществляет переход между режимами.

Во втором режиме при достижении максимального значения яркости на канал будет загораться светодиод D2.

Прошивка для микроконтроллера ATtiny85 написана в среде разработки Arduino IDE 1.6 с установленными платами Digispark, для управления светодиодами использовалась библиотека Adafruit NeoPixel. Прошивать микроконтроллер необходимо с помощью SPI программатора. 

После травления и пайки компонентов готовая плата выглядит так:

Печатную плату можно покрыть сверху каким-либо защитным диэлектрическим слоем, например, лаком.

Работа контроллера продемонстрирована на видео. 


Прикрепленные файлы:

Отправить комментарий

0 Комментарии