Время

scahr
В закладки

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

Тема подобных часов, конечно, уже избита, заезжена и местами даже опошлена. Но ведь "если ты никому не расскажешь, чем ты занимаешься, то никто и не узнает".

Ниже по тексту будет некоторое количество технических деталей. Буде кому-то скучно это всё читать, то можно просто картинки посмотреть. Ничего нового для сколько-нибудь сведущих в электронике людей здесь не будет, скорее наоборот – всё будет очень банально и скучно.

В общем, один мой друг (Лёха, в очередной раз большая благодарность тебе) периодически подкидывает мне всяких "олд-скульных" индикаторов (ИН-12, ИН-14, ИВ-... и т.п.). Что с ними делать? Часы, термометры и прочие метеостанции разных калибров, само собой.

Функционально схему любых подобных часов можно разделить на несколько блоков: преобразователь питания самих индикаторов, блок/модуль отсчитывания времени с календарём (по желанию), сам индикатор (-ы) и какой-то микроконтроллер, который этим всем будет управлять. Так же "по вкусу" можно добавить, например, какой-то способ связи устройства со внешним миром, как сделал я для эксперимента и расширения функционала. И "пищалку" для будильника, конечно.

Микроконтроллер. Будет STM32F030F4P. Почему он? Потому что мне нравится ARM (8-битные ATMEGA'и уже не так интересны), именно эти модели есть у меня в некотором количестве и они дешёвые.

Чуть подробнее его про подключение его к остальным блокам и блоков к нему. Для начала: кнопки, чтобы управлять и настраивать часы не только программатором, но и как все "нормальные" часы.

Здесь всё просто и стандартно. Простейшая схема антидребезга. Можно и программно его подавлять, но аппаратная реализация, на мой взгляд, надёжнее и проще.

Дальше можно подключить и "пищалку".

Тоже всё просто и обычно, по образу и подобию всех "модулей пищалок" для Arduino, например. Вывод BUZZ микроконтроллера, конечно, сконфигурирован как вывод канала ШИМ одного из таймеров МК.

Дальше подключим часы с календарём. Мне нравится микросхема DS3231, у которой помимо всего прочего есть и внутренний термосенсор с коррекцией хода времени от оного. Заодно можно и температуру показать "из коробки". Часы "общаются" с МК через интерфейс I²C. К самой микросхеме часов подключим ещё стандартную "мат.платовскую" батарейку CR2032, чтобы часы не сбивались без основного питания.

Я не стал подключать удобные и интересные выводы микросхемы к МК. Не хотелось усложнять, да и свободных выводов уже не осталось. Поэтому только батарейка, питание и интерфейсная часть.

Дальше будет повышающий преобразователь питания самого (-их) индикатора (-ов). Все VFD-индикаторы требуют для своей работы два напряжения. Это накал, от 1.5 до 5.5В в зависимости от типа индикатора и рабочее напряжение сегментов. 25-70В, которое зависит от режима работы (постоянный или импульсный) и самой модели индикатора.

Схема преобразователя тоже самая простая и очевидная.

В роли ШИМ-контроллера – обычный таймер NE555. А перемычка XS1 здесь для отключения питания преобразователя от питания на всякий случай. Для отладки остального и на тот случай, если я где-то налажаю или напутаю.

Всё устройство питается от любого USB, которого вполне хватает для питания и повышающего преобразователя и всего остального в целом. Общий ток потребления примерно 150мА в пиках.

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

И от этой картинки можно не менее плавно перейти к следующей – "общение" часов с компьютером, например. Для этого использована популярная китайская микросхема CH340.

В итоге имеем виртуальный COM-порт при подключении устройства к компьютеру со всеми вытекающими. Можно сделать bootloader для обновления прошивки устройства с компьютера и/или, например, настройки часов AT-командами, как dial-up-модемы когда-то давно. Последнее я и (почти) реализовал. Почему почти? "Проклятая лень! Какой я был бы славный человек, если бы она мне не мешала". © Л. Н. Толстой.

Ну и самое интересное – это коммутация всех выводов индикатора (-ов). В моём случае у ИВ-18 имеется 18 выводов, которыми нужно управлять.

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

Дальше всё это было разведено в печатную плату, заказано на одном из китайских заводов/сайтов...

...спаяно, проверено по частям и полностью на предмет КЗ, непропаев и прочего...

...написана прошивка и, в общем-то, готово.

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

Частично потому, что хотелось сделать видеоверсию всего этого. Но это пока слишком высокий (выше 80-го) уровень.

Всем спасибо .)

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Сергей Петров", "author_type": "self", "tags": [], "comments": 12, "likes": 79, "favorites": 47, "is_advertisement": false, "subsite_label": "craft", "id": 92314, "is_wide": false, "is_ugc": true, "date": "Sat, 11 Jan 2020 01:13:30 +0300", "is_special": false }
(function(d, ver) { var s = d.createElement('script'); s.src = ((location.host === 'dtf.ru') ? 'https://dtf-static-bf19cf1.gcdn.co/static/build/dtf.ru/specials/RocketBankSummary/js/all.dtf.min.js?' : 'https://dtf.k8s.osnova.io/static/build/dtf.k8s.osnova.io/specials/RocketBankSummary/js/all.dtf.min.js?') + ver; s.async = true; var container = d.getElementById('rocket-bank-summary'); if (container) { s.onload = function() { new RocketBankSummary.Special({ container: container, location: 'article', share: { url: '', title: '', } }); }; } d.body.appendChild(s); })(document, 45);
0
{ "id": 92314, "author_id": 194583, "diff_limit": 1000, "urls": {"diff":"\/comments\/92314\/get","add":"\/comments\/92314\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/92314"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 87848, "last_count_and_date": null }
12 комментариев
Популярные
По порядку
Написать комментарий...
5

Бля да ты крутой. Вообще здорово, что сам такие приятные вещицы в состоянии сделать

Ответить
2

Спасибо .))

Ответить
2

Давай теперь с оранжевыми индикаторами.

Ответить
3

В процессе и такие

Ответить
1

Ооо, привет Алекс гайвер.

Ответить
0

Нет, не он .)

Ответить
0

В чём проблема использовать часы контроллера? И какой тайный смысл связи "часов" с компьютером через китайский преобразователь?

Ответить
2

Никакой проблемы, просто захотелось так.

Тайного смысла тоже нет, опять-таки, просто захотелось.

Ответить
0

Ля, уже тоже давно думал написать статью про приёмники, но руки всё не доходили/

Ответить
0

Ничего не понятно, но очень интересно
Жду больше текстов на данные темы

Ответить
0

Красавец) 

Ответить
0

Лампота!

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]