WS2812 — это RGB светодиод в корпусе 5050 со встроенным ШИМ-контроллером. Принцип работы такого светодиода прост: на вход Din поступает 24 бита информации о состоянии уровня цвета каждого светодиода в корпусе, после чего последующая информация передается через выход Dout на следующий светодиод.
Как результат, такие светодиоды можно последовательно объединять в ленты, длина которых ограничивается только источником питания и доступной памятью микроконтроллера.
Согласно спецификации, электрические параметры светодиода следующие:
Цвет | Длинна волны (нм) | Интенсивность (мКд) | Ток (мА) | Напряжение (В) |
---|---|---|---|---|
Красный | 620 — 630 | 550 — 700 | 20 | 1,8 — 2,2 |
Зеленый | 515 — 530 | 1100 — 1400 | 20 | 3 — 3,2 |
Синий | 465 — 475 | 200 — 400 | 20 | 3,2 — 3,4 |
Протокол общения со светодиодом достаточно прост: передача логического «0» и логической «1» происходит посредством изменения длительности положительного импульса так, как показано на рисунке.
Типичная схема включения светодиодов выглядит следующим образом:
Предлагаемый контроллер реализуется согласно следующей принципиальной схеме.
Печатная плата, которая реализует изображенную выше принципиальную схему, имеет следующий вид.
Плату необходимо изготовить на листе одностороннего фольгированного стеклотекстолита размером 26 х 38 мм. Типичная ширина дорожек равна 0,6 мм, максимальная 0,8 мм.
Компоненты размещаются в соответствии с принципиальной схемой так, как показано на рисунке ниже.
Объемный рендеринг печатной платы выглядит следующим образом:
Немного о компонентах
Разъем J1 — это micro USB, контактные площадки под него можно переделать в соответствии с разъемом, который будет иметься в наличии. Диод D1 необходим для защиты платы от переполюсовки в случае подключения питания напрямую, не через USB. Этот же диод ограничивает максимальный ток нагрузки. Светодиод D2 используется для индикации состояния контроллера в некоторых режимах роботы. Конденсаторы С1 — С3 ставить не обязательно (т.к. на светодиодных лентах с WS2812 обычно устанавливаются конденсаторы рядом с каждым светодиодом), но желательно.
Контроллер имеет три режима работы:
- Режим выбора количества светодиодов.
- Режим регулирования яркости каждого канала на всех светодиодах одновременно.
- Режим эффектов.
Назначение кнопок:
- S3 и S2 в первом режиме добавляет (+) и уменьшает (-) количество светодиодов соответственно, а во втором режиме увеличивает и уменьшает яркость выбранного канала.
- S1 во втором режиме осуществляет переход от одного канала к другому, а в третьем режиме переключает эффекты.
- Одновременное нажатие S1 и S3 осуществляет переход между режимами.
Во втором режиме при достижении максимального значения яркости на канал будет загораться светодиод D2.
Прошивка для микроконтроллера ATtiny85 написана в среде разработки Arduino IDE 1.6 с установленными платами Digispark, для управления светодиодами использовалась библиотека Adafruit NeoPixel. Прошивать микроконтроллер необходимо с помощью SPI программатора.
После травления и пайки компонентов готовая плата выглядит так:
Печатную плату можно покрыть сверху каким-либо защитным диэлектрическим слоем, например, лаком.
Работа контроллера продемонстрирована на видео.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATtiny85 | 1 | Корпус SOP-8 | ||
R1-R4 | Резистор | 10 кОм | 4 | Типоразмер 0805 | ||
R5 | Резистор | 100 Ом | 1 | Типоразмер 0603 | ||
R6 | Резистор | 500 Ом | 1 | Типоразмер 0805 | ||
S1-S3 | Кнопка тактовая | 3 | ||||
D1 | Диод | М7 | 1 | |||
D2 | Светодиод | 1 | Типоразмер 0805 | |||
С1-С3 | Конденсатор | 104 | 3 | Типоразмер 0603 | ||
X1 | Вилка штыревая | 1 | ||||
J1 | Разъем | micro USB | 1 | |||