Насмотревшись на всякие красивые светодиодные безделушки, очень захотелось повторить одну из них, ну или разработать свою. А тут еще конкурс от Радиокота к его пятилетию. И хотя я точно знал, что моя работа не попадет даже в двадцатку первых (все же это часы, которые всем изрядно надоели), решил, что эта работа будет не для конкурса – а реально «в подарок».
Итак – светодиодная мигалка, но не полностью бесполезная, а с функцией «неточных» часов. Почему неточных? А потому что в ней 24 светодиода, 12 зеленых, 12 красных, а значит точность показа минут – 12 раз в час, т.е. 5 минут. Ну что ж. Иногда и такая точность отсчета времени бывает полезна. Тем более, помнится, когда-то в старинных каретах стояли часы, которые каждые 15 минут издавали звон, тем самым давая пассажирам приблизительно определять время, проведенное в поездке. А у нас получатся часы в три раз точнее 🙂
Принципиальная схема
За основу был взят простой и уже знакомый мне микроконтроллер ATtiny2313. Красивой схемы я к сожалению не нарисовал, зато есть проект в Proteus, где наглядно показано куда подключено большинство деталей. На схеме не показаны токоограничительные резисторы на 330 Ом, включенные последовательно со светодиодами, кварц с на 16 МГц блокирующими конденсаторами, а так же разъём программирования.
Так как кнопок управления нужно было минимум две (чтобы было удобно управлять мигалкой), то ножек МК на полноценное раздельное управление отдельно зелеными и красными светодиодами, просто не хватило. Поэтому пришлось делать динамическую засветку красных и зеленых светодиодов с управлением по одной ножке PORTD.0 (когда на ней уровень “1″ — светятся зеленые, “0″ — красные).
Питать схему должны были два ААА аккумулятора (была мысль использовать литиевую батарейку, но не было под рукой красивого держателя на нее.
Печатная плата.
Сидел над разводкой платы долго, старался красиво (ну, конечно же, на свой взгляд) развести светодиоды, расположить детали. Это же в первую очередь должна была б быть красивая технологичная светодиодная мигалка, а значит плата должна соответствовать.
Транзисторы, отвечающие за динамическое управление «красным» и «зеленым» каналами использовал выводные BC32140 и BC33140. SMD транзисторы у меня закончились, а с выводными вид получился даже солиднее. И кварц у меня тоже был обычный выводной, а чтобы ножки не смогли замкнуть ан корпус, то из плотного картона пришлось вырезать прокладку.
Долго прикидывал, как красиво развести светодиоды, и наконец, понял, что без двухсторонней платки никак не обойтись. В результате получилось вот это:
Плату изготовлял по лазерно-утюжной технологии, потому что это наиболее быстрый способ (при условии, что принтер под рукой)
Изготовление
Распаиваем все детали. Самое главное было – не перепутать полярность запайки светодиодов. А то если ошибиться, то надо будет выпаивать… а это очень плохо скажется на внешнем виде платки.
С обратной стороны платы впаиваем разъём для программатора. Принятый в AVR стандарт я не использую. Зря, наверное, но так уж получилось. У меня много конструкций уже использует «мой собственный» стандарт разъёма программирования. Возможно, когда-то спаяю на всякий случай переходник… впрочем, я отвлекся.
Для придания конструкции законченного вида осталось только установить на обратной стороне держатель аккумуляторов и выключатель.
Приклеиваем их на термоклей и подключаем питание к платке. Лучше поставить последовательно с аккумуляторами какой нибудь подходящий по току диод. А то, если у вас во время программирования, питание на схему идет с программатора, то будете заряжать им аккумуляторы.
Все! Вот что получилось:
Прошивка
Память микроконтроллера использована на 99.7%. Правда, боюсь, что слишком уж неоптимальная получилась прошивка. Впрочем, для начала – подойдет и такая.