Сегодня речь пойдет об очередных часах. Нравятся они мне, да и вещь в хозяйстве полезная. Вообще-то делать часы я не собирался, но случилось так, что все часы, представленные в предыдущих статьях, я раздал друзьям и в принципе достаточно спокойно обходился без них. Но в один прекрасный день мне попалось на глаза объявление о продаже ИН-18 за совершенно смешную стоимость (если правильно помню, то меньше 2500р за 6 штук). Соответственно, они были сразу же куплены.
Тогда и зародилась идея сделать себе «домашние» часы. Не валяться же таким редким лампам в столе. Сказано — сделано. Пока почта перемалывала в своих недрах мою посылку с лампами, я нарисовал схемы и развел платы. Схемотехника аналогична предыдущим часам, т.к. уже хорошо себя зарекомендовала, за исключением того, что вместо AtMega8 был использован STM32F100. Во-первых у него большее число пинов ввода-вывода, во-вторых больше аппаратных возможностей и памяти, ну и в-третьих он дешевле и меньше (хотя размер в данном проекте не особо важен). Подсветки в этот раз две и они независимы. Одна для ламп и вторая для корпуса, например. При этом все 3 канала цвета подключены к выходам аппаратного ШИМ МК, а переключение между ними динамическое. Так же изменения коснулись микросхемы часов реального времени. DS1307, которые я использовал в прошлых схемах, не всегда показывали высокую точность хода, была сильная зависимость от качества кварца, аналогична ситуация и со встроенными в МК часами. А т.к. постоянно подводить часы мне не хотелось, так же как и цеплять туда GPS или ещё что для автосинхронизации времени, то я использовал давно лежащие без дела PCA2129T, про которые я рассказывал вот тут /me/mc/mc188.php. Производитель обещал очень высокую точность хода (как оно и оказалось в последствии, за месяц работы уход не замечен). А если же не повезло и точность плывет, то можно внести коррекционные коэффициенты в память МК.
Раз уж делать, то нужна полноценная индикация, с секундами. В качестве секундных я использовал ИН-8. Найти их труднее, чем те же ИН-14, обладающих такой же формой и размерами, но ИН-8 имеют «правильную» цифру 5, а не перевернутую 2, как ИН-14.
Схемы получились следующие:
Все элементы схемы поместились на 2-х платах размером 180х44 мм. Вполне себе компактно.
На фото видна ошибка разводки в ВВ преобразователе, перепутаны ножки IRF740. На платах, приложенных к проекту, она исправлена. Использование «панелек» для ламп в данном случае сильно помогло при установке плат в корпус. С несъемными лампами это было бы на порядок сложнее из-за риска повредить лампы. Плюс замена, в случае чего, возможна без разборки часов. Панельки изготовлены из контактов DSUB разъема, а для ИН-8 — из цанговой линейки. Если же ИН-8 с жесткими выводами, то все панельки изготавливаются одинаково.
Как лишь все элементы были распаяны и проведено первичное тестирование схемы на работоспособность, начались поиски подходящего корпуса. В ходе поисков было решено обратиться в мастерскую, предоставляющую услуги лазерной резки и гравировки. Изначально планировался корпус из акрила, но на момент заказа ничего подходящего в мастерской не оказалось. Зато тонких листов дерева различной толщины было множество. Чертежи выполнил в Компас 3D и по ним мне нарезали пачку заготовок из дерева. После этого я просто сложил их вместе и покрыл лаком в 3 слоя. Процесс, к сожалению, не заснял, там как-то не до этого было. Получилось вполне сносно. Стороны между слоями, я не лакировал, иначе корпус был бы собран неплотно. Верхняя крышка так же лакировалась отдельно, чтобы исключить склеивание ее с корпусом.
В нижней части корпуса вклеил 4 светодиода. Эта сторона так же не лакировалась, т.к. закрывается акрилом, одна сторона которого обработана мелкой наждачной бумагой с водой для придания матовости. Благодаря этому свет от светодиодов рассеивается более равномерно.
Фото, конечно, так себе, но общий смысл понятен.
Платы устанавливаются на длинные болты, высота задается гайками (синий огрызок разъема дырку загораживает прижимает кнопки к задней части корпуса). Так же оставлен разъем для программирования, чтобы не пришлось потом все разбирать ради изменения программы. Длинна провода такова, что его можно вытащить слегка приподняв верхнюю крышку корпуса. Припаивается разъем на специально отведенные для этого контактные площадки.
В собранном виде все это выглядит вот так.
Функционал остался прежним. Все те же 4 режима работы (часы же все таки):
- Время;
- Время -> Дата;
- Время -> Температура;
- Время -> Дата -> Температура.
Управление осуществляется 3 кнопками. MENU, +, -. Кратковременное нажатие на MENU переключает режимы, длительное — переводит часы в режим настройки. Переход по настройкам (Часы-Минуты-Дата-Месяц-Год) осуществляется кратковременным нажатием этой же кнопки, а изменение параметра — кнопками + и -. При этом, если в течении минуты не производить никаких действий, то включается отображение времени без сохранения настроек. Время записывается в момент перехода на экран настройки даты, секунды при этом обнуляются. Кратковременное нажатие на + или — в режиме работы управляет сменой цветов подсветки ламп и корпуса соответственно. Длительное нажатие — включает или выключает соответствующую подсветку. Все изменения сохраняются в память МК.
Тут есть одна недоработка, на этапе проектирования,я совершенно забыл, что мне понадобится память для хранения настроек и поэтому я ее просто не поставил. В итоге пришлось делать запись во Flash память МК, т.к. EEPROМ у него нет, плюс микросхема часов тоже обделена памятью, в отличии от DS1307, что не есть хорошо. Во-первых у нее не такое и большое число циклов перезаписи (что в случае сохранения настроек часов не так критично, т.к. их меняют не часто). Во-вторых запись во Flash приводит к остановке работы МК и в момент записи наблюдается дерганье часов, что можно увидеть на видео. Не сильно страшно, но неприятно. В будущем скорее всего переделаю плату и добавлю туда микросхему EEPROМ. Кроме этого, уже на этапе программирования пришла идея по динамической индикации. Было бы удобнее подавать сигнал с выхода канала ШИМ МК на лампы через обычную микросхему логики. Тогда отпадает необходимость крутить программный ШИМ для индикации. Это изменение тоже хотелось бы внести на новую плату. Места вроде как хватает.
P.S. Места в МК ещё вагон. Можно добавить чего-то эдакого. Может к кого есть предложения? Говорите, не стесняйтесь. Плюс можно без проблем перевести схему на работу с любой другой микросхемой часов реального времени. Потребуется лишь незначительная правка одной библиотеки.
И, традиционно, видео работы сего девайса.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
Основная платаU1
МК STM32STM32F100C81
U2
Часы реального времени (RTC)PCA2129T1
U3
К155ИД11
U4, U5
DC/DC импульсный конвертерMC34063A2
VR1
Линейный регуляторLM1117-N1
Q1, Q2, Q4-Q7
Биполярный транзисторBC8476
Q3
MOSFET-транзисторIRF71041
Q8
MOSFET-транзисторIRF8401
Q9
Биполярный транзисторBC8571
D1
Выпрямительный диодHER1061
D2
Выпрямительный диод1N41481
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
Биполярный транзисторMMBTA926
Q7-Q12
Биполярный транзисторMMBTA426
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
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- IN-18_SRC.rar (189 Кб)
- IN-18_PCB.rar (3791 Кб)
- IN-18_Case.rar (94 Кб)