Информационный портал MSEVM






Главная > Автоматика для дома > Электронные часы на ATtiny2313

Электронные часы на ATtiny2313

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

Принципиальная схема часов: Основная часть, Индикаторы
На схеме не указан аккумулятор. Который плюсовым проводом подключается к месту соединения резистора R3 и диода D2, а минус к общему минусу всей схемы.

Основой часов является микроконтроллер фирмы Atmel ATtiny2313.

Сам микроконтроллер питается от напряжения примерно 5В, подготавливаемого микросхемой L7805 из напряжения питания +12В.

Для сопряжения рабочего напряжения микроконтроллера (+5В) и рабочего напряжения светодиодных "линеек" (+12В) реализована схема на основе микросхем ULN2003AN и полевых транзисторов International Rectifier IRLML6302TR.

Микросхема ULN2003A представляет собой сборку семи биполярных составных транзисторов. Левая по схеме микросхема ULN2003A коммутирует сегментные выводы наших светодиодных индикаторов, правая - используется как набор инверторов с открытым коллектором для передачи сигналов на затворы полевых транзисторов IRLML6302TR, которые, в свою очередь, подсоединяют общие выводы наших светодиодных индикаторов к источнику питания +12В. Кроме того, один из каналов правой по схеме микросхемы ULN2003A используется для подачи питания на два светодиода - точки-разделители.

Давайте теперь рассмотрим часть схемы, отвечающую за сохранение хода времени при отключении питания. Для этого используется небольшой аккумулятор, производимый компанией GP T341 на 3,6В емкостью 270мА·ч:

GP T341

     Если внимательно посмотреть на схему можно заметить, что микроконтроллер может получать питание от двух источников - от микросхемы L7805 через диод 1N4148 и от аккумулятора T341 также через такой же диод 1N4148. В нормальном режиме, когда электропитание часов есть, питание микроконтроллера осуществляется через диод 1N4148 от микросхемы L7805. Кроме того, от источника питания через третий диод 1N4148 и два последовательно соединенных резистора на 270 Ом осуществляется подзарядка аккумулятора T341. Если внешнее питание будет потеряно, питание микроконтроллера будет осуществляться через второй диод 1N4148 от аккумулятора T341.

Чтобы снизить потребление энергии от аккумулятора на столько, на сколько это только возможно, программа микроконтроллера содержит блок, который во время питания от аккумулятора (т. е. при отсутствии внешнего питания) переводит все выводы микроконтроллера в высокоимпедансное состояние (делает их "входами"). Чтобы это работало, микроконтроллер должен знать о том, что внешнее электропитание потеряно или получено вновь. Для этого, на вывод 12 микроконтроллера подается напряжение питания +12В через резистивный делитель, выполненный на резисторах номиналом 9.1кОм.

Резистор номиналом 1.5кОм, включенный параллельно источнику питания +12В, необходим для наискорейшего падения напряжения при исчезновении внешнего питания и быстрому реагированию микроконтроллера с последующим переключением своих выводов в высокоимпедансное состояние.

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

Как правильно откалибровать точность хода часов?

Для того чтобы правильно настроить часы (правильно выбрать значение калибровочной константы), необходимо включить полностью собранные часы на сутки (24 часа). Прим этом значение калибровочной константы должно быть сразу выставлено в ноль. Засечь на уже проверенных часах 24 часа. После того как 24 часа истекут, необходимо найти время на сколько ушли вперёд собранные нами часы. Отставать они никак не могут, так как программа написана так, чтобы часы немного спешили. Например наши часы ушли вперёд на 90 секунд или 90000 миллисекунд. Затем делим это время на число 144, так как в сутках 144 интервала по 10 минут, а значение калибровочной константы, представляет собой число в миллисекундах, т.е. на это значение будет задерживаться ход времени каждые 10 минут. Следовательно необходимо поделить 90000/144=625. Следовательно значение калибровочной константы равно 625.

Совсем не обязательно засекать 24 часа, можно засечь и 12 часов или любое другое время, тогда значение делителя будет равно не 144, а произведению отмеренного вами количества часов на число 6. Например Вы засекаете 12 часов тогда делитель будет равен 12*6=72, для 6 часов 6*6=36 и т.д. Время на которое оставлять часы Вы выбираете на своё усмотрение, но для максимальной точности лучше засекать 24 часа.

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

После изменения значения калибровочной константы значение времени обнуляется и требует повторной установки.

Ниже в архиве находятся: схема устройства, маска для печатной платы, чертежи корпуса в формате cdr, который открывается программой CorelDraw версии не ниже 14.

Прошивка и исходный код программы доступны на нашем диске DVD "MSEVM", заказать который можно отправив запрос в произвольной форме на e-mail: msevm@mail.ru

Вы можете заказать готовое устройство обратившись ко мне по адресу: igor-in@mail15.com и я с удовольствием соберу для Вас точно такие.

Обсудить на форуме: http://www.msevm.com/forums/index.php?showtopic=3638

Авторские фото доступтны в нашей фотогалерее, в альбоме: Электронные часы на ATtiny2313


Игорь Янович
e-mail: igor-in@mail15.com
www.microcontroler.ucoz.com






e-mail рассылки
Радиолюбитель
Подписаться письмом
















Яндекс цитирования Rambler's Top100