![]() |
![]() |
|||||||||||||||
Самодельная ёлочная гирлянда на ATtiny85 и светодиодах WS2812B
Автор: Ramm-SD Disclaimer: Я в курсе что новогодние праздники уже закончились. Предыстория Давным-давно, в далёком 1989-м году мои родители купили вот такую гирлянду: По сути дела, это были 10 последовательно соединённых лампочек с рассеивателями, подключавшиеся в бытовую сеть 220 вольт. Выглядела она, на мой взгляд, лучше чем современные китайские поделки, но у неё были свои минусы:
Как раз последнее вывело меня из равновесия и побудило к действию. Переделка гирлянды Первым делом надо было определиться с заменой для ламп МН-26. Менять на обычные светодиоды, это всё равно что менять шило на мыло. RGB-светодиоды - тоже шило, только в профиль. Мигающие и переливающиеся светодиоды - такое себе решение. О, есть же индивидуально адресуемые! В чём их отличие от обычных? Если яркость обычного светодиода управляется приложенным напряжением (сколько на него подаётся, на столько он и светит), то индивидульно адресуемые управляются информацией, передаваемой по однопроводной шине данных. Несмотря на то что они подключаются последовательно по трём проводам, каждым можно управлять независимо от остальных. Из того что было на тот момент выбор пал на WS2812B. Кстати, вот они крупным планом: Схема подключения светодиодов: Теперь можно было приступить к переделке. Хотя нет, каких-то десять светильников в гирлянде - это несерьёзно. Некоторое время активных поисков принесло свои плоды - было найдено ещё две таких же. Одна из них была в нерабочем состоянии, но это вообще никак меня не волновало. Вот теперь точно можно приступать к работе. Чёрт побери! Они оказывается бывают разных вариантов исполнения! Ну, ладно, перетерпим... Светильник в разобранном виде (лампочка, контактная пара и светофильтр больше не понадобятся): Итак, необходимо на месте каждой лампочки разместить светодиод, а также фильтрующий конденсатор - без него светодиод напрочь отказывается работать. Ещё нужно предусмотреть возможность простой замены светодиодов без акробатических трюков с паяльником в стеснённых условиях пластикового патрона. Вооружившись запасом крепких слов и разъёмами PLD-6/PBD-6 сооружаем такую конструкцию (конденсатор спрятан под светодиодом, а средние пины разъёма используются как ключ) в необходимом количестве: "Лампочки" сделали, теперь их надо разместить по своим местам в светильниках (макраме, блин): Провода (какие были) сплёл между собой, чтобы между светильниками не болтались как попало. Расстояние между светильниками оставил как было в исходной гирлянде - 45 см. Как потом оказалось с таким количеством светильников можно было сделать по-короче. Чтобы вешать на ёлку было проще, все светильники разбил на группы по 5 штук. Для соединения групп светильников между собой использовал разъёмы MiniJack (те самые аудио 3,5-мм). В конце гирлянды предусмотрел разъём для дополнительного питания, чтобы просадка напряжения по длине гирлянды не была слишком чувствительной. Если вглядеться в итоговую фотографию гирлянды, то можно разглядеть 30 светильников, 14 метров общей длины и 1,5 килограмма живого веса (бедная ёлка). Источник питания В этой части всё намного проще: нам нужен стабилизированный источник питания с напряжением 5 вольт достаточной мощности. Кушать светодиоды очень даже любят, по разным данным до 60 мА на максимальной яркости. На деле же - как повезёт, мои потребляли максимум 50 мА. Максимальный общий ток получился - 1,5 А. Как раз для этой цели у меня был припасён китайский сетевой БП на 5В/2А. Амперы в нём оказались тоже китайские. Два ампера он не держал совсем - уходил в защиту, а при полутора - напряжение на выходе просаживалось почти до 4-х вольт. Тут следует отметить, что светодиоды WS2812B при пониженном напряжении остаются работоспособны, но слабее светят и уходят в желтизну (синему кристаллу нужно напряжение выше, чем зелёному и красному). Блок управления Как уже было написано выше, кроме питания светодиодам необходимо передавать информацию по шине данных. Сердцем блока управления стал микроконтроллер ATtiny85, нужна именно полная, а не урезанная (с заниженой частотой) версия. Питается блок управления также напряжением 5 В через предохранитель FU1 и фильтрующие конденсаторы C2 и C3. Микроконтроллер тактируется от внешнего кварца на 20 МГц. Кнопки и переключатель подключаются к пинам по стандартной схеме с подтягивающим резистором и конденсатором для "антидребезга". Данные для работы светодиодов передаются с пина PB1 через токоограничивающий резистор. Зелёный индикаторный светодиод показывает наличие питания, а жёлтый - положение переключателя SA1. Светодиоды питаются через предохранитель FU2 и фильтрующие конденсаторы C1 и C9. Рекомендации по сборке блока управления:
Блок управления изначально планировал собрать вместе с источником питания в Gainta'вском корпусе G445, поэтому готовая плата имеет такую форму. Для подключения гирлянды к блоку управления использовал разъёмы MiniFit: MF2x2MR и MF2x1MR на плату, MF2x2F и MF2x1F на провод. Первая версия платы блока управления: А так выглядит доработанный вариант платы: Прошивка микроконтроллера В принципе, если собрана полная схема, то можно просто прошить микроконтроллер и ничего дополнительно не настраивать. Не забыв при этом про установку Fuse-битов (на скриншоте инверсные Fuse-биты из PonyProg'а): А можно поковырятся в настройках в EEPROM:
Это все настройки, которые можно произвести при прошивке. Остальные ячейки EEPROM изменять не рекомендуется. Примечание: при первом запуске микроконтроллер запишет в EEPROM версию прошивки. Управление гирляндой Гирлянда может находится в одном из 3-х режимов работы: 1. Нормальная работа: Гирлянда работает в автоматическом режиме, не требующем дополнительного вмешательства. Если включен таймер для автопереключения, то после истечения установленного времени блок управления сменит программу на другую в случайном порядке и перезапустит таймер. Таймер можно включить или выключить переключателем SA1, если горит жёлтый светодиод - таймер выключен. Дополнительно можно сменить программу нажав на кнопку SB2, при этом блок управления изменит программу на следующую по списку и сбросит таймер. Любое изменение программы записывается в EEPROM. 2. Режим тестирования: При первом запуске гирлянды режим тестирования. Нажатием на кнопку SB2 сначала по очереди проверяются все три цвета светодиодов (зелёный, красный и синий), а потом проверяется максимальная нагрузка на источник питания (все светодиоды горят белым цветом). После чего запускается нормальная работа гирлянды. 3. Режим настройки: В этом режиме можно изменить кол-во светодиодов, используемых гирляндой. Для входа в режим нужно включить или перезагрузить блок управления с нажатой кнопкой SB2. После отпускания кнопки запустится режим настройки, и записанное кол-во светодиодов включится жёлтым цветом. Теперь если при включённом жёлтом светодиоде нажать кнопку SB2 кол-во светодиодов можно будет уменьшить (отсекаемые будут светиться красным), а при выключенном - увеличить (добавляемые будут светиться зелёным). Сохранение выбранного кол-ва светодиодов происходит при каждом переключении SA1. Чтобы выйти из режима настройки нужно перезагрузить блок управления, после чего запустится режим тестирования. Итоги
Актуальный на момент публикации файл прошивки прикреплен внизу статьи. Все необходимые файлы (в том числе файл прошивки) находятся по адресу https://yadi.sk/d/Xog9zcG4T6jxng. Напоследок дополню статью небольшим видео, включающем демонстрацию программ (эффектов). Примечание: На момент записи видео были готовы только 24 программы.
Файлы: Все вопросы в Форум.
Эти статьи вам тоже могут пригодиться: |
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |