Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Новогодняя ёлочная звезда на адресных светодиодах и ATtiny85

    Новогодняя ёлочная звезда на адресных светодиодах и ATtiny85

    Здравствуйте, товарищи Самоделкины!


    До Нового года осталось совсем чуть-чуть (а может он уже и наступил, смотря, когда статью опубликуют), а это значит, что уже у каждого дома стоит и радует глаз нарядная красавица-ёлочка. А какое украшение на ёлке самое главное? Конечно же верхушка! Вот и я год назад, гуляя по праздничной ярмарке, наткнулся на продававшуюся за символическую цену красную новогоднюю звезду, на вроде тех, что были распространены в советское время. Приглянулась мне она, и я её купил. Вот только не узнал о продавца, а что уже неё внутри там такое светится. А светились там, как оказалось, лампочки накаливания, десять штук, последовательно соединённых. 

     

    И во-первых, грелись они как… Ну, как лампы накаливания – ваттметр 20 ватт показывал, чуть меньше, чем мой паяльник выдаёт. А во-вторых, посветив какое-то время, они начинали то выключаться, то включаться обратно, и так по кругу, как я понимаю, из-за перегрева, потому как никакой схемы, отвечающей за это, там нет (если кто знает, объясните, пожалуйста, почему так происходит). Словом, штука достаточно пожароопасная. Но сама по себе звезда мне нравилась, а потому мысль переделать её под светодиоды появилась почти сразу. Вот только до Нового года тогда оставалось совсем мало времени, поэтому эта светлая, во всех смыслах этого слова, идея была отложена да следующего года.

    За это время были приобретены все необходимые компоненты, а именно:

    – Адресные светодиоды WS2812B.

    – Кусок стеклотекстолита, размерами 15 на 15 сантиметров.

    – Микроконтроллер ATtiny85.

    – SMD-конденсаторы на 0,1 мкФ, по количеству светодиодов.

    – Пара выводных конденсаторов, на 470 и 1000 мкФ, от 6.5 вольт и выше.

    – Резистор (подойдёт любой мощности, сопротивление 200-500 Ом).

    – Кнопка.

    Плюс по мелочи, разъём для удобства, чтобы звезду можно было отключать от блока управления (нашёл какой-то в ящике, даже не знаю, от чего он), провода, по высоте ёлки, штырьки от Ардуино и панелька на восемь ножке, чтобы микроконтроллер в случае чего достать можно было.

    Так же понадобятся следующие инструменты:

    – Паяльник.

    – Паяльный фен (конечно, теоретически, можно и без него, но вот у меня светодиоды паяльником припаять ну вообще не получалось – корпус сразу плавился. С другой стороны, у меня и паяльник-то… Может, какими-то современными, с тонкими жалами и получилось бы).

    – Программатор USBASP.

    Почему за основу взяты светодиоды WS2812B? Ими легко управлять, для этого достаточно всего одного пина микроконтроллера, их относительно несложно паять, потому что у них всего четыре ножки, и им не надо никаких дополнительных деталей на плате, ну кроме конденсаторов. Из минусов – так как звезда красная, то и использовать я буду только сегменты красного цвета, но при этом передавать на диоды нужно все три значения, два из которых всегда равны нулю, то есть это, по сути, – балласт. С другой стороны, если кто-то захочет повторить этот проект для звезды в прозрачном корпусе, то появляется возможность добавить разноцветных режимов мигания. Как говорится, У – универсальность.

    Почему именно ATtiny85? Ну… Их есть у меня. В своё время я купил себе несколько штук, для подобного рода проектов, где не нужно особо много вычислительных мощностей и хотелось бы добиться максимальной компактности. По сути, её можно заменить и на обычную Ардуино – в коде (о котором чуть позже) нужно будет просто подкорректировать некоторые значения.

    Замысел готов, детали и инструменты есть, можно приступать. Первым делом нужно было сделать печатную плату. Разводку для неё я делал в Sprint-Layout. Обвёл по контуру звезду, отсканировал рисунок, вставил в программу в качестве фона, подогнал по размерам, повторил контур линиями-проводниками, а дальше всё как обычно - "Просто рисуй"©.

     

    И тут мне в голову пришла ещё одна мысль… Есть такой интересный проект – Гравипадово. Изначально он задумывался как пародия на известный мультсериал Гравити Фолз, но со временем перерос в самостоятельную вселенную (вселенную очень крутую и ламповую). И есть там такой персонаж, Борис – выглядит он как красная пятиконечная звезда с глазом. 

     

    И решил я сделать, чтобы моя звезда была не просто звезда, а звезда-Борис… Спустя ещё день была готова и вторая разводка.

     

    Далее при помощи лазерно-утюжной технологии переносим изображение на текстолит:

     

    Вырезаем платы и травим их в растворе перекиси водорода и лимонной кислоты:

     

    Сверлим, где надо, отверстия:

     

    Далее лудим дорожки и запаиваем детали:


    На плате-звезде, помимо светодиодов и конденсаторов на 0.1 мкФ есть также резистор и большой конденсатор на 1000 мкФ. 

    Резистор нужен для подстраховки – если возникнет ситуация, когда на диоды не будет подаваться питание, но сигнал с микроконтроллера будет отправляться, диоды начнут питаться от пина микроконтроллера. А это может привести к сгоранию, собственно, пина. Честно говоря, с трудом представляю, при каких обстоятельствах может возникнуть такая ситуация, но лучше на всякий случай потратить один резистор и быть спокойным.

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

    С блоком управления звезда соединяется проводами, и если провода эти длиннее 50 см (как в моём случае, я взял около 2 м), также рекомендую скручивать их в косичку для защиты от наводок.

    Звезда готова, можно вставлять в корпус:


    Паяем блок управления и крепим его в корпус:

     

    Питаться вся схема будет через разъём Type-C (надо будет при случае ещё и micro-USB туда добавить, а то Тайп-Сишный всё время для телефона нужен).

    Далее приступаем к программированию. Штырьки на плате блока управления нужны как раз для этого, чтобы постоянно не доставать оттуда контроллер, а подключить через них программатор и работать совсем как с платой Ардуино. Внимание! Перед тем, как подключить МК через программатор к компьютеру, нужно подключить к схеме внешнее питание, Type-C то бишь, иначе питание на схему пойдёт через программатор, а так как ток там неслабый, до ампера доходит, то программатор можно и спалить. Решается это добавлением в схему диода рядом с питанием, но я об этом сразу не подумал.

    Программировать будем через Arduino IDE. Да, я знаю, что Ардуино-функции занимают довольно много места в памяти микроконтроллера, и что если использовать для программирования какие-нибудь фьюз-биты (поправьте, если неправильно сказал), то можно впихнуть туда гораздо больше всяких режимов и функций, или при тех же самых функциях использовать более дешёвый МК. Но, к сожалению, я так не умею. Поэтому буду писать через Arduino IDE – максимально понятно, читабельно и повторибельно.

    Для работы с ATtiny в Arduino IDE необходимо установить туда ядро, то есть данные о контроллере, который мы будем прошивать. По умолчанию ATtiny там нет, поэтому нужно его добавить.

    Заходим в меню Файл -> Настройки и в окошко Дополнительные ссылки для менеджера плат вписываем вот это: http://drazzy.com/package_drazzy.com_index.json

     

    Жмём Ок. Далее в меню Инструменты->Плата->Менеджер плат находим ядро ATTinyCore и устанавливаем. 

     

    После этого в списке плат появится семейство МК ATtiny. Выбираем вариант ATtiny25/45/85 (No Bootloader).

     

    Подключаем плату, однократно нажимаем Записать загрузчик, после этого во вкладке Скетч жмём Загрузить через программатор. Всё готово.

    По коду – он представляет собой ряд функций, которые друг от друга никак не зависят (за редким исключением). Все они помещены в один массив, и в цикле loop постоянно активируется функция, соответствующая текущей переменной mode. Всего получилось 18 режимов.

    Переключение функций происходит либо автоматически, раз в полминуты, либо по нажатию кнопки. Нажатие обрабатывается через прерывание. В прерывании определяется длительность нажатия – короткое, длинное и очень длинное. Коротким нажатием переключается режим, длинным включается/выключается зацикливание режима мигания. А очень длинное включает Бориса – персонаж он малоизвестный, поэтому и запрятать я его решил получше)


    А вот видео работы:

     [media=https://youtu.be/Ai6G3ggD1Ys]

    Большую часть функций я честно скопировал у аналогичного проекта с сайта Радиокот (по-научному, говорят, это реверс-инжиниринг называется), или стырил из уже готовых проектов адресных лент. Не особо у меня фантазия в этом плане работает... И один RGB-режим таки-оставил, по просьбам трудящихся.

    Проект можно дорабатывать. Например, мне уже подкинули идейку добавить туда режим светомузыки. Ну а что – АЦП в ATtiny есть, целых четыре пина, свободные ножки есть – пару дней работы, и будет Бориска в такт музыке с ёлки подмигивать! Да и новых режимов мигания можно придумать, абы память была (но вот с этим, как раз, проблемы, осталось всего 7 процентов – надо пробовать оптимизировать код). Но это уже в другой раз.

    А на этом у меня всё. Всем спасибо, и всех с наступающим!

    zvezda.zip [29.94 Kb] (скачиваний: 23)

    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Графический анализатор звука на Arduino

    3
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    8
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    8
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 6.33 из 10 (голосов: 1 / История оценок)

    Добавить комментарий

    4 комментария
    Ваня Кулибин #96191 Автор

    А я уверен. И как раз прозрачную лампочку рассмотрел бы поближе

    Да, она и оказалась) Я сразу приметил, что одна из лампочек не окрашена, но были мысли, мол, брак или сэкономили. А внутрь посмотреть не догадался)

    При сборке между половинками остается вентиляционный зазор для охлаждения. Лампочки 5 штук 60В 50мА.

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

    Чем труднее задача, тем интереснее её решать!
    Ваня Кулибин #96190 Автор

    Не уверен, но возможно одна из ламп с терморазмыкателем

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

    Молодец! Всего год назад начинал с простейшего мультивибратора.

    Спасибо) На самом деле, та ёлочка была сделана сильно раньше, года два, а то и три назад, а статью решил написать только тогда. А радиоэлектроникой я заинтересовался ещё давнее, в классе пятом. Но там совсем уж ерунда была. Потом уже научился и платы травить, и SMD паять. И вот теперь уже кое-что интересное получается)

    Чем труднее задача, тем интереснее её решать!
    Jerry #96186
    Цитата: Korolev
    Не уверен, но возможно одна из ламп с терморазмыкателем.


    А я уверен. И как раз прозрачную лампочку рассмотрел бы поближе.

    Унас такая звезда, только провод белый:

    При сборке между половинками остается вентиляционный зазор для охлаждения. Лампочки 5 штук 60В 50мА.

    Korolev #96174

    посветив какое-то время, они начинали то выключаться, то включаться обратно

    Не уверен, но возможно одна из ламп с терморазмыкателем. Молодец! Всего год назад начинал с простейшего мультивибратора.  goodgood 

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии