РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: ЧасыПервичные часы

Первичные часы 2 - микроконтроллер наносит ответный удар

Автор: Gordon Shumway
Опубликовано 05.04.2012
Создано при помощи КотоРед.

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

первичные часы (часовая станция), которая умеет рулить вторичными часами и не боится отключения питания.

 

 

     Часовая станция построена на I2C-часах реального времени DS1307 и “народном“ микроконтроллере Atmel Atmega8. Управление вторичными часами происходит через ключи IRF7343.  Благодаря резервной батарейке на DS1307 часы не боятся пропадания основного питания.

 

    При старте на выходе SQW/OUT   DS1307 включается 1 Гц, который заведен на INT0 микроконтроллера. Каждую секунду по прерыванию микроконтроллер считывает время  с DS1307. Если число минут равно 0, то идет команда на отработку импульса для вторичных часов (импульс на PB1 или PB2). Соответственно на выходах IRF7343 формируется импульс нужной полярности. IRF7343 по даташиту держат до 1 ампера, сопротивление вторичных часов (моих) ~1 ком. Получается больше 30 штук вторичных часов можно подключить к этой часовой станции, хватило бы основного питания. (количество вторичных часов не проверялось на практике, у меня включено 5 штук).

 

     При пропадании  основного питания в первую очередь пропадает питание на выводе 1 Atmega8 (INT 1), срабатывает прерывание, микроконтроллер бросает все дела и бежит записывать в свою EEPROM текущее состояние вторичных часов (часы, минуты, полярность последнего импульса управления). Он успевает это сделать благодаря цепочке питания VD2-C2.  После этого программа останавливается.

 

    При первом включении и при последующих включениях часовой станции в течение пяти секунд можно сделать выбор – корректировать вторичные часы или нет. Если корректировать не требуется, нужно нажать кнопку S1. Иначе через пять секунд произойдет коррекция вторичных часов, как после отключения основного питания.

 

    Для установки времени на часовой станции нужно нажать S1 из рабочего режима. Кнопками S2 и S3 корректируются часы и минуты, S1 – выход в основной режим.

После установки времени вторичные часы не корректируются.

 

   Для установки времени на вторичных часах нужно нажать S4 из рабочего режима.

Кнопками S2 и S3 устанавливаются часы и минуты (то неправильное время, которое показывают вторичные часы в данный момент), S1 – запуск коррекции вторичных часов. Сразу после нажатия кнопки S1 рассчитывается разница между текущим временем и установленным для вторичных часов и запускается коррекция. Если время коррекции продолжалось больше 59 секунд, то по окончании ее делается поправка на время, которое прошло с момента начала коррекции. Таким образом, время на вторичных часах будет равно времени на часовой станции.  

 

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

Все события и нажатия кнопок радостно озвувчиваются спикером со встроенным генератором.

  

   Автоматический переход на летнее/зимнее время пока не делался, но есть в планах.

В любом случае ручная коррекция делает этот процесс легким. В режиме ручной коррекции увеличили/уменьшили час и  запустили коррекцию.

На печатной плате разведен разъем ISP для программирования распаяного микроконтроллера.

 

О фьюзах:  микроконтроллер тактируется от внутреннего генератора 1мгц, обязательно включаем монитор порога питания 2,7 вольт.

 

В планах на будущее:

 

0. Если новый руководитель страны вернет зимнее/летнее время, придется поднапрячься и сделать перевод автоматически;

1. пофиксить выявленные глюки;

2. добавить новые глюки.

 

PS: во время экспериментов ни одного микроконтроллера не пострадало!


Файлы:
Схема, плата, прошивка, исходники


Все вопросы в Форум.




Эти статьи вам тоже могут пригодиться:

Первичные часы.

Тёплые ламповые часы на Нумитронах

Часы из HDD: Русский ответ

Простые часы-ночник2

Часы - информатор для ПК

Часы на RGB матрицах + радио + BMP180+AM2321 +ПДУ

Часы, календарь, термометр.

Часы на PIC.

И снова говорящие - поющие часы. Суперсрочно!

Простые часы-ночник

Часы на светодиодных матрицах с драйверами MAX7219

Часы радиоприемник

МФУ для стола радиолюбителя

Реализованный проект часов на Tiny13a

Часы на газоразрядных индикаторах ИН-12Б

Часы "Always with you"

Часы-будильник на PIC контроллере.

Часы "GadgetClock" для офисного стола

Простые часы на микроконтроллере.

Автомобильные часы.

Часы из амперметров

Одноламповые часы

Очень маленькое, но очень полезное устройство.

Миниатюрные часы на вакуумно-люминисцентном индикаторе ИВ-21

Часы на вакуумных лампах ИВ-12

Часы. Эллипс, Скелетон, RGB.

Просто часы

Полезный моддинг - спектроанализатор + часы.

Часы Super Clock

Карманные часы "MicroClock"