РадиоКот >Схемы >Цифровые устройства >Автоматика >
Первичные Часы
Всем привет!
История проекта берет свое начало с обычного объявления на АВИТО.
Некто продавал первичные часы собственного изготовления за 5000р. Все бы ничего, и я бы прошел бы мимо, но в описании к объявлению было столько изящных слов, что они заставили меня задумать. А действительно ли так сложно сделать первичные часы?
Вот эта мысль и натолкнула меня на этот проект «Выходного дня».
Техническое задание, которое я сформировал:
- Удобное управление и корректировка времени
- Питание от USB (Как было в объявлении)
- Автоматическая корректировка времени после выключения/включения питания.
Поговорим о комплектующих:
- Часы: Реализованы на микросхеме DS3231 в корпусе SO-8. Редкая, но очень удобная из-за своих размеров. Эту микросхему вы все знаете Стабильнее её я пока не встречал.
- Преобразователь: Реализован на микросхеме MAX1771. Только потому, что их у меня много.
- Драйвер часов: Микросхема DRV8870DDA. Это драйверы управления электродвигателем.
- Контроллер: ATTINY841. Выбирал из-за размеров и функционала. Но, к сожалению, микросхема мне не очень понравилась. Показалась что она еще сыровата. Были некоторые необъяснимые глюки.
- Память: Нашел эту крошечную микросхему 24LC01. Про неё могу сказать только одно, она ОЧЕНЬ медленная. Но для наших задач пойдет.
Поговорим о логике работы всей системы.
При инициализации ножка SQW микросхемы DS3231 настраивается на импульсы с частотой 1Гц.
Эти импульсы подаются на ножку микроконтроллера, который в свою очередь запрашивает время с микросхемы часов и обрабатывает алгоритм корректировки вторичных часов.
Если алгоритм говорит о необходимости корректировки времени на вторичных часах, то МК включает преобразователь MAX1771, корректирует время и выключает преобразователь.
В целом ничего сложного по основному алгоритму нет.
А вот возможность отключать/включать питание с последующий корректировкой заставил задуматься.
Для реализации этой функции необходимо записывать в память текущее состояние вторичных часов и полярность. И запись нужно производить каждый раз при изменении любого из параметров.
Изначально для этого хотел использовать EEPROM микроконтроллера, но циклов записи/перезаписи слишком маленькое. Да еще в МК ATTINY841 какая-то ерунда с памятью. 8 из 10 перезаписей корректны, а 2 нет. И это происходит рандомно!
В этой ситуации нам поможет микросхема 24LC01. У неё гарантированных 1000000 циклов перезаписей (А это 2,5 года непрерывной работы часов).
С данными мы разобрались.
Но для стабильности работы алгоритма нам нужен еще датчик наличия напряжения.
На плате часов по сути 2 цепи питания. Одна с конденсатором на 100 uF питание преобразователь. Другая через диод имеет гирлянду из конденсаторов на 470 uF.
Когда отключается питания, то контроллер понимает, что питания нет и на запасённой энергии в гирлянде успевает дозавершить выполнение всех алгоритмов и прекратить выполнять новые.
Тем самым мы избавляемся от ненужных ошибок при пропадании питания.
При появлении питания МК сравнивает показания часов (DS3231 продолжают идти так как они с батарейкой) и тем, что записано в памяти 24LC01. И если требуется, то автоматически корректирует время.
Настройка часов:
Предусмотрено 2 режима.
Режим 1: Бываю случае когда время может отставать на 1-2 минут. Это часто связано с тем, что механизм может подклинивать. Для быстрой корректировки нужно зажать кнопку (2) на 5с. Стрелка перескочит на 1 минуту вперед.
Режим 2: Полная корректировка. Зажать кнопку 1 на 5с. Загорится зеленая лампочка. Ход времени остановиться и кнопкой 2 уже можно выставить необходимое время. Для применения настроек нужно зажать кнопку 1 до погасания лампочки.
В целом ничего сложного по итогу нет. Получилась крохотная платка с необходимом функционалом.
Прикрепляю к статье все исходники что у меня есть + максимально документированную прошивку.
Я не исключаю что можно написать пришивку и лучше и избавиться от некоторых микросхем, но это уже совсем другая история!
Спасибо что дочитали до конца! Надеюсь, было полезно и интересно.
Файлы:
Схема
Плата
Прошивка
Все вопросы в
Форум.
Как вам эта статья?
|
Заработало ли это устройство у вас?
|
|
|
Эти статьи вам тоже могут пригодиться: