Восстановление часов «Электроника 7»

в 21:49, , рубрики: arduino, arduino leonardo, DIY, программирование микроконтроллеров, электроника-7, метки: , ,

image
На днях один знакомый принес мне часы на вакуумно-люминесцентных лапах ИВ-26 «Электроника 7-06М», а точнее то, что от них осталось. Это достаточно редкая модель часов является уменьшенной копией часов «Электроника 7-06К». Как не странно, но все сегменты исправно работали, но вот платы с логикой не было.

В некоторых местах этот пост скорее пособие «как НЕ надо делать», Однозначно лучше не использовать навесной монтаж, протестировать конструкцию на отладочной плате, а за тем, вытравив плату ЛУТом, использовав грошовый atmega8 к примеру, распаять схему красиво и аккуратно.

И так, у меня был свободный вечер, стойкое желание привести к жизни эти часики и полное отсутствие макетных плат и фольгированного текстолита. На плате под индикаторами был распаян каскад ключей, состоящий из КТ209 и ограничивающих ток по базе резисторов на 15 кОм.
image
Сами индикаторы уже связанны в сборки по 4 штуки, имеющие 7 сегментов, осталось только развести второй каскад анодных ключей для каждого сегмента сборки, и, изолировав общее питание по аноду каждой из четырех сборок индикаторов, повесить ключи для управления питанием сборки.
image
Для начала распаиваем шлейф из 7 жил, подключая все четыре сборки сегментов параллельно, и 4 жильным шлейфом выводим питание анодов каждой сборки.
image
Далее, порывшись в оскудевших после переезда закромах, было найдено:
Резисторы на 10кОм и 2.2кОм, зарядка от «нокии», россыпь транзисторов «2т602а» и пять штук «КТ315А». Не густо, но хватит.
Первым делом, вешаем второй каскад ключей по анодам отдельных сегментов — их семь штук.
image
По базе ограничиваем ток резисторами на 10кОм.

Потом делаем управление включением сборок, использовав «КТ315А», через резисторы на 2.2кОма подключаем их на землю, через эти же 2.2кОма подключаем выводы с анодов, ток базы ограничиваем опять же 10кОмами. Супер-клей спасет планету, я в этом уверен.
image
В результате, пока на базе 0 — сборка горит, подали +5 — сборка потухла. Просто, как огурец.
Принцип работы всей конструкции — мы зажигаем на пару миллисекунд каждую сборку, одновременно с этим подавая напряжение на нужные нам сегменты, в результате у нас по очереди загораются разные сборки сегментов и на каждой рисуется своя цифра.

Для управления всем этим великолепием была взята давно не используемая копия arduino leonardo с выжженным высоким «portc» и какими то странными глюками, заключающимися в том, что иногда без принудительного ребута ее прошить не возможно. Раньше использовалась для быстрой проверки всякого-разного, а так как внимательности мне никогда не хватало, частично умерла смертью храбрых, при не совсем выясненных обстоятельствах, работая в качестве прерывателя для DRSSTC. Досталась она мне в свое время «за бесплатно», поклонником этой платформы, а тем более этой платы (пламенный привет разработчикам за очень удобный маппинг портов например) не был, то «умер Трофим — да и черт с ним!».
Но для этой цели живых портов вполне хватит, а так как дешифратора не нашлось, то используем для знакогенерации целиком portD, который, хоть в разнобой, но все-же присутствует почти целиком на колодке, за исключением пина «5». Для включения-выключения сборок сегментов используем выводы «A0-A3» на плате. «А4» у нас будет получать показания с термопары. Также для четырех кнопок используем выводы «7-10» на плате: 9 и 8 — установка часов и минут, 7 — остановка хода часов, 10 — переключение показа температурычасов.
image
И оно заработало! Осталось только откалибровать более-менее точность хода. Для этого был подцеплен частотомер и подобрано значение микросекунд контроллера, при котором оно соответствует 2 миллисекундам реальным.
image
В принципе, стоило писать нормальный код, контролировать и считать все прерывания, но я решил обойтись подобным методом.
После этого был добавлен терморезистор, подключены кнопки и еще раз проверена точность хода (которая опять уплыла).
В качестве источника питания для ардуины выступила старая зарядка от «нокии».
image

Готовое устройство умеет отображать время:
image

И температуру:
image
Из минусов — примерно в половину упавшая, по сравнению с заводским изделием, яркость (что логично — в оригинале используется статическая индикация, а не динамическая).

Оригинальные схемы «Электроника 7-06М» — yadi.sk/d/Ebli4xXmeWnyi
Код прошивки для Леонардо — pastebin.com/7RA7p0u6 (для обработки данных с термопары был использован код товарища hookenful, за что ему огромное спасибо).

Автор: carrier

Источник

Поделиться

* - обязательные к заполнению поля