Новый год уже скоро, поэтому самое время подумать о праздничном освещении. Сегодня я хочу показать, как с помощью дешевого микроконтроллера и хитрой прошивки можно сделать веселее даже самую скучную статичную светодиодную гирлянду.
Исходные данные
У меня скопилось великое множество самых разных гирлянд, среди них есть как простые советские на лампочках, так и модные нынче на адресных светодиодах. Когда играться с режимами последних мне надоело, я пришел к выводу, что это все баловство, и самый оптимальный вариант гирлянды — это та, которую включил один раз и забыл. Самыми удобными мне показались USB гирлянды на 30-40 лампочек длиной 4-6 метров. Они недорого стоят, их удобно хранить за счет небольшой длины и можно воткнуть куда угодно, т.к. потребление у них мизерное. Единственный минус — такие гирлянды в основном абсолютно статичны, т.е. при работе просто светятся и не имеют никаких спецэффектов. Еще в прошлом году я заказывал сразу кучу разных USB гирлянд, среди них мне больше всего понравились такого типа:
Заказывал здесь. Это примитивная гирлянда на 30 светодиодов длиной 4.5 метра, которая питается от любого USB порта и во время работы просто светится по всей длине:
В ней чередуются светодиоды 4х цветов: красного, желтого, зеленого и синего. Есть и варианты с просто белыми/теплыми вариантами светодиодов:
На странице лота есть и вариант с батарейным питанием, причем он отличается наличием мигающего режима (мигает просто вся гирлянда). Такая у меня тоже есть, и у нее имеется большой минус: она очень быстро теряет яркость по мере просадки батареек. При всей своей тупой примитивности в техническом плане эти гирлянды все же имеют свой некий шарм за счет интересных рассеивателей:
Они сделаны из прозрачной эпоксидки и наполнены пузырьками, на которых красиво рассеивается свет, создавая эффект шара со снежинками:
В техническом плане гирлянда ничего сложного и интересного не представляет, на конце обычный USB разъем со встроенной в него парочкой гасящих резисторов:
А все светодиоды подключены параллельно, на всю длину гирлянда имеет всего 2 провода:
Потребляет это поделие всего 90мА, поэтому его можно питать от любого подвернувшегося USB порта:
Я, например, втыкаю свои в порты телевизора, ТВ приставки, в старые ненужные зарядники от телефонов — везде работает отлично.
Теория
Несмотря на то, что провода в данной гирлянде всего 2, мы с помощью хитрости можем заставить ее мигать двумя группами светодиодов независимо друг от друга. Хитрость эта называется
Charlieplexing, и ей уже сто лет в обед. Заключается она в том, что можно подключить светодиоды разной полярностью к общей шине и управлять ими отдельно с помощью изменения полярности на шине:
Особенно легко это делать при помощи микроконтроллера: подаем на вход X1 логическую единицу, на X2 — ноль, в итоге горит LED1. Инвертируем (X1 — ноль, X2 — единица) — горит LED2, таким образом мы имеем возможность по всего двум проводам независимо управлять двумя отдельными светодиодами. Если переключать выходы с большой частотой, по визуально будут гореть оба светодиода, причем с помощью изменения длины периода можно менять и яркость, т.е. это фактически обычный двухполярный ШИМ. На самом деле Чарлиплексинг не ограничивается двумя светодиодами, это для него вообще самый примитивный случай. Обычно в реальности эта техника используется для управления всякими матрицами светодиодов с использованием сильно меньшего количества пинов микроконтроллера. Но у такого подхода есть существенный минус: мерцание и падение яркости с ростом количества коммутируемых светодиодов, от этого никуда не деться.
Практика
Для управления светодиодами будем традиционно использовать микроконтроллер ATiny13, причем питать светодиоды мы будем напрямую с пинов контроллера, а для повышения максимального отдаваемого тока мы запараллелим по паре пинов. О допустимости такого подхода ходят споры, но на деле лично я проблем никогда не замечал, по моему опыту этот МК вообще нереально убить практически ничем. Каждый пин t13 может отдавать до 20мА, для двух пинов получаем до 40мА, чего должно быть достаточно для питания половины гирлянды почти без потери яркости (т.к. вся она потребляет 90мА, см. выше). Общая схема:
Здесь C1 — конденсатор на 0.1-1 мКф, R1 — резистор на 10-20 Ом. Питать напрямую от МК можно гирлянду длиной 15-30 светодиодов, не больше. Для гирлянд большей длины придется городить усилитель на полевиках, что-то типа такого:
Бинарник прошивки и исходники
можно скачать тут.
Внимательных читателей заинтересует, как же осуществляется переключение режимов, если на схеме нет ни одной кнопки? А хитрость в том, что я пошел по пути, который используется в фонариках, и режимы здесь переключаются быстрым отключением-включением питания схемы. Причем последний использованный режим запоминается спустя примерно минуту работы, так что каждый раз заново перебирать все режимы в поисках наиболее понравившегося не нужно. К слову, можно легко реализовать переключение и по кнопке — для этого достаточно включить ее между RESET и VCC микроконтроллера. Режимы работы мы рассмотрим позже, а пока нам нужно немного пошаманить над самой гирляндой, т.к. у нее все светодиоды подключены параллельно. У каждого второго светодиода снимаем рассеиватель, в моем случае это синие и зеленые диоды:
Светодиод сидит на термоклею, для более легкого съема «плафон» можно погреть феном. Снимаем старую термоусадку:
Между контактами имеется кусок пластика, его не выкидываем — он нужен для предотвращения замыкания. Каждый второй светодиод таким образом перепаиваем на обратную полярность и собираем в обратном порядке. Новая термоусадка:
Диаметр 4.8мм,
брал тут, на всю длину гирлянды хватит отрезка длиной 50см. Усаживаем:
При усадке каждого светодиода важно проверить, что нигде ничего не замкнуло или не пропал контакт. В конце надеваем рассеиватели и проверяем все еще раз, подав на вход гирлянды 5В через 100 Ом резистор:
Если все сделано верно, гореть должны при этом только сине-зеленые или красно-желтые светодиоды, а при смене полярности питания — наоборот:
Для электронной начинки было лень разводить и травить свою плату, поэтому первый прототип я решил сделать с помощью
платы-переходника SSOP8:
А размещаться все это будет в
сборном USB type A разъеме:
Для большей компактности пришлось немного подрезать как пластиковую часть коннектора, так и переходник микроконтроллера:
Запаиваем микроконтроллер и параллелим пины:
Далее я буквально навесным монтажом разместил на разъеме конденсатор и припаял плату с МК:
Два средних пина из разъема я вытащил, чтобы конденсатор уместился и не замыкал. Аналогичным образом на весу припаян 1206 резистор на 10 Ом:
Ни к какой красоте я здесь не стремился, это чисто демонстрационный прототип для проверки работоспособности идеи. Для реального использования я планирую чуть позже развести и заказать нормальные платы. Дабы ничего не отвалилось во время испытаний я залил плату эпоксидкой, и после сборки на конце гирлянды имеем обычный USB разъем, про который с виду и не скажешь, что он несет в себе какую-то хитрую логику:
Результат
Всего в прошивке 11 режимов, среди них:
- Автоматический — в нем все мигающие режимы переключаются по кругу через определенный интервал времени
- Статический — горят все диоды одновременно, как было изначально
- 9 видов мигалок, у каждой из которой есть 3 скорости (медленно, средне, быстро)
Переключение между режимами, как вы догадываетесь, осуществляется перетыканием USB разъема, что при активном использовании может сократить срок службы порта на питающем устройстве, но на деле скорее всего в 99% случаев при первом же включении будет установлен автоматический режим, в котором гирлянда будет работать практически всегда. Но при большом желании в корпусе разъема можно уместить и микропереключатель.
Итак, предлагаю посмотреть, как работают всякие мигалки.
Самая первая — просто мигание всеми светодиодами одновременно:
Далее идет поочередная мигалка:
«Полицейская» мигалка:
Поочередная мигалка «с нахлестом»:
Поочередная мигалка «с нахлестом» №2:
Плавная мигалка всеми светодиодами:
Плавная поочередная мигалка:
Плавная поочередная мигалка «с нахлестом»:
Плавная поочередная мигалка «с нахлестом» №2:
Итог
Описанным образом можно оживить практически любую статичную гирлянду, если в ней не очень много светодиодов. Хотя на рынке в наши дни полно готовых гирлянд и контроллеров к ним, на сделанную своими руками смотреть гораздо приятнее)
Я был сильно удивлен, что тини не устоял.
15 метров от сети. За 360 рублей!.. Эффекты те же, но куда дешевле и не надо переделывать каждый второй диод. Но за работу — плюс.
… к чёрту философию и демагогию. Автору уважение! Красивое решение.
На днях такие с МЫШКИ выпаял… их там целых 3 штуки зачем-то стояли и они все постоянно мигали НЕСИНХРОННО. Тошнить хотелось от такой мыши.
Как заметили выше — новогодний.
Но все это дело для тех кто «умеет паять» и усидчив (перебрать всю гирлянду условно «лампочку» за лампочкой — это вам не проводок порта USB подпаять на плате — по тщательности...)
Для основной массы населения /женщины, дети и военные алкоголики с тремором рук /это не доступно, но очень, очень интересно и по новогоднему :)
Плюсую от души.
Правильный проц для правильной задачи — респект и уважуха!
Я же говорил именно про правильное применение с точки зрения возможностей процессора и его мощности.
Если вы знаете аналогичный проц в дипе с нормальной документацией и хотя-бы на 20 центов дешевле (тинька стоит около 0.85$) — с удовольствием послушаю про него.
А вообще под данную поделку больше вот такие гирлянды подходят, их можно взять две, три, четыре разных цветов и соединиьт в одну линию, и управлять каждой отдельным пином, если не хватит мощи, поставить по полевичку типа irml0040.
Для тех, кто паять не будет, китайцы уже реализовали нечто подобное:
https://aliexpress.com/item/item/1005001537880472.html
Штора 3*2 за $4.90, есть разные размеры
Управление с пульта, 8 программ, тот же чарлиплексинг на 2 канала, регулировка яркости. Ток до 200 мА. Шим на 100Гц.
Я сделал снежинку из ленты с адресными диодами. Диаметр чуть больше метра. Основа — полосы алюминия и напечатанные соединения. С улицы видна издалека и смотрится хорошо. 150 диодов, управляется esp8266. В прошлые года делал мелкие снежинки, использовал stm32f030, но тут стало не хватать памяти под буфер, проще стало взять esp8266, хоть wifi и не используется. 16 эффектов (не считая зеркальных, в обратную сторону и т.п.), 13 цветовых палитр, переходы между эффектами плавные. Дальше фантазия закончилась :)
Видео с изнанки, но так камера даже лучше передаёт цвета.
Готов повторить! )))
То же готов повторить конструкцию, на каких возможно условиях автора
Теперь думаю о мозгах. Как раз есть 2 штуки ESP 12F
Никак не могу найти.
Только гирлянду собрал на светодиодах, которые встречно-параллельно были красными и зелёными. Двухвыводный светодиод диаметром 3 или 5мм, который от полярности включает красный или зелёный кристалл.
А дальше всё, как описано у автора: полярность (с умощнением мостом) и ШИМ. Было даже чуть красивее, поскольку каждый огонёк на ёлке мог плавно менять цвет от красного до зелёного через оранжевый, жёлтый и салатовый. Ну и мигалки всех возможных разновидностей. У 2313 пинов много, поэтому на ёлке размещалось сразу две подобные гирлянды, что ещё больше увеличивало количество эффектов.
Автору спасибо, плюс.
Осталось только Attyny-ек за копейки найти (или выпаять откуда-нибудь) и обвешаем все новогодние елки такими гирляндами :-)
подправте пожплуйста
и на схеме тоже
День добрый! Наткнулся на ваш обзор в поисках решения своей проблемы и увидел, что с большой вероятностью вы сможете мне помочь))
Имеется гирлянда на микросветодиодах, подключаемая от USB, со сменой режимов и пультом подобного плана. Через пару месяцев гирлянда перестала включаться. Разобрал USB c платой, обнаружил темное пятно на текстолите под микросхемой с маркировкой FM116b. Довольно посредственно разбираюсь в электронике, но из описания сделал вывод, что именно она позволяет управлять режимами свечения. В продаже в своём городе не нашёл, на али продаются партиями от 100 шт.
Пробовал подключать от 5В, горит только половина, при изменении полярности — другая.
Подскажите, пожалуйста, простой способ вернуть эту копеечную гирлянду к жизни) Нужно только постоянное свечение всеми светодиодами.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.