Казалось бы, новогодние праздники уже почти как два месяца назад
отзвенели закончились, и поговорка есть: дорога ложка к обеду. Но! Это не последний новый год, и есть другая поговорка: готовь сани летом. А поэтому первым электронным устройством в теме будет...
Доработка ёлочного украшения "Звезда"
Предупреждение 1: Будьте внимательны при сборке и подключении, т.к. микроконтроллер и LM-ка (линейный стабилизатор) не любят переполюсовки и короткого замыкания.
Предупреждение 2: Будьте аккуратны с раствором для травления плат - соли меди непригодны в пищу и ни разу не полезны для организма.
Давным-давно, в далёкой галактике... Жила-была у меня с давних пор ёлочная насадка "Звезда" советского роду-племени. Жила долго и счастливо, периодически выбираясь на свет божий (ну, или на ёлку, кому как нравится). Работала она просто: то лучи включит, то середина засияет. К сожалению, фотографии сего новогоднего чуда в исходном виде у меня не сохранилось (возможно скоро появятся, т.к. предстоит препарировать такого же пациента).
Иногда ломалась: то лампочка сгорит, то опять лампочка сгорит, то ещё раз какая-то окаянная лампочка окочурится. С течением времени тяжело заболел и мультивибратор, с трудом уже отрабатывавший свою задачу по морганию лампочками. С этим надо было что-то делать. Конечно, можно просто заменить отработавшие своё детали, но как раз в тоже время увлёкся микроконтроллерами и было решено пойти по своим граблям. Сразу же были поставлены следующие цели:
- Вместо лампочек должны быть светодиоды.
- Звезда должна иметь несколько режимов работы.
Практически сразу была собрана вот такая простенькая схема, которую запитал от лабораторного блока питания:
Для удобства всё собиралось на беспаечной макетной плате WB-102:
И пошло ваяние прошивки для микроконтроллера, и длилось оно долго... (здесь должна быть мелодия из "Терминатора"😉 В общем, к новогодним праздникам в CodeVisionAVR 2.05 была написана бета-версия прошивки и собрана схема в черновую (навесным монтажом, как и сток). Микроконтроллер со светодиодами и резисторами болтался в корпусе звезды, питание и кнопка переключения программ - в отдельном блоке. Внешне от стока отличалось только наличием этой кнопки:
Светодиоды попарно спаяны так, чтобы светить одновременно в обе стороны:
Всё это честно отработало положенный срок и поступило на допиливание. Что было допилено:
- Прошивка обросла возможностями и заполнила почти всю flash-память микроконтроллера.
- В обвязку микрухи был добавлен конденсатор, т.к. без него устаревшая ATTiny2313 худо-бедно работала (не без глюков же), а более новая ATTiny2313A отказывалась работать напрочь.
- Навесные сопли были заменены цивилизованной платой на фольгированном текстолите. Бонусом к этому стало исчезновение эффекта погремушки.
- Провода убраны в разъёмы.
Окончательная и полная схема "Звезды":
Расположение светодиодов:
Что надо оставить от стока:
- Корпус звезды и корпус блока питания/управления.
- Провода.
- Трансформатор.
Список запчастей для сборки схемы:
- Стеклотекстолит фольгированный двухсторонний.
- Микроконтроллер ATTiny2313A в корпусе DIP-20 - 1 шт.
- Панель под микросхему SCS-20 - 1 шт.
- Резистор выводной 220 Ом, 0.25 Вт - 6 шт.
- Светодиод красного свечения в SMD-корпусе (3528 или 5050) - 12 шт.
- Конденсатор электролитический 47 мкФ, 16 В - 1 шт
- Конденсатор электролитический 1000 мкФ, 25 В - 1 шт
- Конденсатор керамический выводной 0.47 мкФ (обозначение "474"😉 - 1 шт
- Конденсатор керамический выводной 0.1 мкФ (обозначение "104"😉 - 2 шт
- Линейный стабилизатор L7805CV - 1 шт.
- Диодный мост (любой, например DB107) - 1 шт.
- Кнопка без фиксации нормально-разомкнутая (например, PBS-20B) - 1 шт.
- Разъёмы по желанию и возможности. Себе сделал так: внутри звезды - зажим KLS2-350-3.50, внутри блока питания - штырьковые на плату, снаружи на корпус - GX16 12M-3A с ответной частью GX16 12M-3B
Примечание 1: Светодиоды нужны именно для поверхностного монтажа (припаять их не проблема, в действителььности), выводные малопригодны.Примечание 2: Если не найдёте красного свечения можно использовать тёплые белые, но не холодные белые - от них цвет будет розовым. Резистор также придётся взять другим номиналом - 150 Ом.Примечание 3: Светодиоды можно выпаять со светодиодной ленты.Немного фоток созидательного процесса (просьба не сильно пинать, т.к. некоторые вещи делались впервые).
Инструмент:
Сначала был вырезан и размечен картонный шаблон, с которого всё перекочевало на текстолит. Будущие дорожки нарисованы лаковым маркером Edding 792:
Буль-буль:
Через 20 минут плата была протравлена. Маркер смывал Flux-off'ом (изопропанолом смывать намного дольше):
...и тут я увидел просто шикарнейший фэйспальм: минус к микрухе-то забыл провести
Дорожки
залужены залиты припоем, детали распаяны по местам (у резисторов выводы со стороны светодиодов припаяны с обеих сторон платы), ошибка в питании исправлена, провода для удобства обозначены термоусадкой:
Теперь пришла очередь блока питания:
Всё в сборе (сквозь красный пластик звезды просматриваются дорожки платы):
Что теперь "Звезда" умеет:
- На борту прошивки 19 программ. Если коротко - прошивка является сильно разжиревшим и обросшим ногодрыгом.
- Программы переключаются автоматически в случайном порядке через определённое время (по-умолчанию стоит 30.
- Переключение программ можно осуществлять вручную (кнопкой).
- При переключении программ микроконтроллер запоминает данные в энергонезависимой памяти (при ручном переключении - через 5 минут)
Видео работы готового устройства:
Прошивку заливал PonyProg'ом. Скриншот Fuse'ов:
EEPROM прошивать не требуется, т.к. прошивка все необходимые значения записывает сама. Единственная ячейка EEPROM, значение которой можно менять обозначена красным на скриншоте:
В этой ячейке хранится шестнадцатеричное значение времени в минутах для автопереключения программ. Если в эту ячейку ничего не записывалось (FF) или записано число меньше 10, то прошивка изменяет на значение по-умолчанию - 30 (1E) минут. Допустимые значения времени лежат в диапазоне от 10 (0A) до 250 (FA) минут. При значениях от 251 (FB) до 254 (FE) автопереключение отключается.
Примечание: цифры в скобках указаны в шестнадцатеричном форматеКстати, в даташите микроконтроллера написано, что у ячеек EEPROM ограниченное количество гарантированных циклов записи (100 000), чего в принципе с текущей прошивкой хватит более чем на 10 лет непрерывной работы 😎
Файлы:
P.s.: Если у вас от блока питания к звезде тянутся два провода вместо трёх, то управляющий провод можно и не подключать (а вместе с ним можно исключить кнопку и конденсатор C4 (0.47 мкФ)) - схема прекрасно работает и без ручного переключения.