Nixie Clock «King Size»

Сегодня речь пойдет об очередных часах. Нравятся они мне, да и вещь в хозяйстве полезная. Вообще-то делать часы я не собирался, но случилось так, что все часы, представленные в предыдущих статьях, я раздал друзьям и в принципе достаточно спокойно обходился без них. Но в один прекрасный день мне попалось на глаза объявление о продаже ИН-18 за совершенно смешную стоимость (если правильно помню, то меньше 2500р за 6 штук). Соответственно, они были сразу же куплены.

Тогда и зародилась идея сделать себе «домашние» часы. Не валяться же таким редким лампам в столе. Сказано — сделано. Пока почта перемалывала в своих недрах мою посылку с лампами, я нарисовал схемы и развел платы. Схемотехника аналогична предыдущим часам, т.к. уже хорошо себя зарекомендовала, за исключением того, что вместо AtMega8 был использован STM32F100. Во-первых у него большее число пинов ввода-вывода, во-вторых больше аппаратных возможностей и памяти, ну и в-третьих он дешевле и меньше (хотя размер в данном проекте не особо важен). Подсветки в этот раз две и они независимы. Одна для ламп и вторая для корпуса, например. При этом все 3 канала цвета подключены к выходам аппаратного ШИМ МК, а переключение между ними динамическое. Так же изменения коснулись микросхемы часов реального времени. DS1307, которые я использовал в прошлых схемах, не всегда показывали высокую точность хода, была сильная зависимость от качества кварца, аналогична ситуация и со встроенными в МК часами. А т.к. постоянно подводить часы мне не хотелось, так же как и цеплять туда GPS или еще что для автосинхронизации времени, то я использовал давно лежащие без дела PCA2129T, про которые я рассказывал вот тут //cxem.net/mc/mc188.php. Производитель обещал очень высокую точность хода (как оно и оказалось в последствии, за месяц работы уход не замечен). А если же не повезло и точность плывет, то можно внести коррекционные коэффициенты в память МК.

Раз уж делать, то нужна полноценная индикация, с секундами. В качестве секундных я использовал ИН-8. Найти их труднее, чем те же ИН-14, обладающих такой же формой и размерами, но ИН-8 имеют «правильную» цифру 5, а не перевернутую 2, как ИН-14.

Схемы получились следующие:

Все элементы схемы поместились на двух платах размером 180х44 мм. Вполне себе компактно.

На фото видна ошибка разводки в ВВ преобразователе, перепутаны ножки IRF740. На платах, приложенных к проекту, она исправлена. Использование «панелек» для ламп в данном случае сильно помогло при установке плат в корпус. С несъемными лампами это было бы на порядок сложнее из-за риска повредить лампы. Плюс замена, в случае чего, возможна без разборки часов. Панельки изготовлены из контактов DSUB разъема, а для ИН-8 — из цанговой линейки. Если же ИН-8 с жесткими выводами, то все панельки изготавливаются одинаково.

Как только все элементы были распаяны и проведено первичное тестирование схемы на работоспособность, начались поиски подходящего корпуса. В ходе поисков было решено обратиться в мастерскую, предоставляющую услуги лазерной резки и гравировки. Изначально планировался корпус из акрила, но на момент заказа ничего подходящего в мастерской не оказалось. Зато тонких листов дерева различной толщины было множество. Чертежи выполнил в Компас 3D и по ним мне нарезали пачку заготовок из дерева. После этого я просто сложил их вместе и покрыл лаком в 3 слоя. Процесс, к сожалению, не заснял, там как-то не до этого было. Получилось вполне сносно. Стороны между слоями, я не лакировал, иначе корпус был бы собран неплотно. Верхняя крышка так же лакировалась отдельно, чтобы исключить склеивание ее с корпусом.

В нижней части корпуса вклеил 4 светодиода. Эта сторона так же не лакировалась, т.к. закрывается акрилом, одна сторона которого обработана мелкой наждачной бумагой с водой для придания матовости. Благодаря этому свет от светодиодов рассеивается более равномерно.

Фото, конечно, так себе, но общий смысл понятен.

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

В собранном виде все это выглядит вот так.

Функционал остался прежним. Все те же 4 режима работы (часы же все таки):

  • Время;
  • Время -> Дата;
  • Время -> Температура;
  • Время -> Дата -> Температура.

Управление осуществляется 3 кнопками. MENU, +, -. Кратковременное нажатие на MENU переключает режимы, длительное — переводит часы в режим настройки. Переход по настройкам (Часы-Минуты-Дата-Месяц-Год) осуществляется кратковременным нажатием этой же кнопки, а изменение параметра — кнопками + и -. При этом, если в течении минуты не производить никаких действий, то включается отображение времени без сохранения настроек. Время записывается в момент перехода на экран настройки даты, секунды при этом обнуляются. Кратковременное нажатие на + или — в режиме работы управляет сменой цветов подсветки ламп и корпуса соответственно. Длительное нажатие — включает или выключает соответствующую подсветку. Все изменения сохраняются в память МК.

Тут есть одна недоработка, на этапе проектирования,я совершенно забыл, что мне понадобится память для хранения настроек и поэтому я ее просто не поставил. В итоге пришлось делать запись во Flash память МК, т.к. EEPROМ у него нет, плюс микросхема часов тоже обделена памятью, в отличии от DS1307, что не есть хорошо. Во-первых у нее не такое и большое число циклов перезаписи (что в случае сохранения настроек часов не так критично, т.к. их меняют не часто). Во-вторых запись во Flash приводит к остановке работы МК и в момент записи наблюдается дерганье часов, что можно увидеть на видео. Не сильно страшно, но неприятно. В будущем скорее всего переделаю плату и добавлю туда микросхему EEPROМ. Кроме этого, уже на этапе программирования пришла идея по динамической индикации. Было бы удобнее подавать сигнал с выхода канала ШИМ МК на лампы через обычную микросхему логики. Тогда отпадает необходимость крутить программный ШИМ для индикации. Это изменение тоже хотелось бы внести на новую плату. Места вроде как хватает.

P.S. Места в МК еще вагон. Можно добавить чего-то эдакого. Может к кого есть предложения? Говорите, не стесняйтесь. Плюс можно без проблем перевести схему на работу с любой другой микросхемой часов реального времени. Потребуется лишь незначительная правка одной библиотеки.

И, традиционно, видео работы сего девайса.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Основная плата
U1 МК STM32 STM32F100C8 1
U2 Часы реального времени (RTC) PCA2129T 1
U3 К155ИД1 1
U4, U5 DC/DC импульсный конвертер MC34063A 2
VR1 Линейный регулятор LM1117-N 1
 
Q1, Q2, Q4-Q7 Биполярный транзистор BC847 6
Q3 MOSFET-транзистор IRF7104 1
Q8 MOSFET-транзистор IRF840 1
Q9 Биполярный транзистор BC857 1
 
D1 Выпрямительный диод HER106 1
D2 Выпрямительный диод 1N4148 1
 
L1 Катушка индуктивности 150 мкГн 1
L2 Катушка индуктивности 38 мкГн 1
 
C1-C3, C6, C8, C9, C13-C15, C18, C20 Конденсатор 100 нФ 12
C4 Конденсатор 1 мкФ 1
C5 Конденсатор 100 мкФ 1 Тантал
C7 Конденсатор 470 мкФ 1
C10, C11 Конденсатор 20 пФ 2
C12 Конденсатор 4.7 мкФ 1 400В
C16, C17, C19 Конденсатор 220 мкФ 3
C21 Конденсатор 510 пФ 1
C22 Конденсатор 550 пФ 1
 
R1-R3, R5-R7, R29 Резистор 4.7 кОм 7
R4, R13-R16 Резистор 10 кОм 5
R9, R10, R17-R19, R31 Резистор 1 кОм 5
R22 Резистор 220 Ом 1
R23 Резистор 0.22 Ом 1 1-2 Вт
R24 Резистор 1 МОм 1
R25 Подстроечный резистор 20 кОм 1
R26, R30 Резистор 330 Ом 2
R27 Резистор 0.33 Ом 1 1-2 Вт
R28 Резистор 3 кОм 1
 
Y1 Кварц 8 МГц 1
 
Плата с лампами
Q1-Q6 Биполярный транзистор MMBTA92 6
Q7-Q12 Биполярный транзистор MMBTA42 6
 
R1-R6 Резистор 5.6 кОм 6
R7, R9, R11, R13, R15, R17, R19-R30 Резистор 10 кОм 18
R8, R10, R12, R14, R16, R18 Резистор 1 МОм 6
R32, R35, R38, R41, R43, R46 Резистор 100 Ом 6
R33, R34, R36, R37, R39, R40, R3, R42, R44, R45, R47, R78 Резистор 68 Ом 12