Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Часы – суточный таймер с коррекцией хода

Наверное, каждый, кто занимается программированием микроконтроллеров, в свое время приходит к разработке какого-либо таймера. Вот, похоже, и мой час настал. Это мой первый проект на PIC.

Конструкций различных часов, таймеров на микроконтроллерах множество. Даже на этом ресурсе их не один десяток. Я пересмотрел много схем. Трудно придумать что-то новое, моя схема похожа на другие, но все же есть некоторые особенности:

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

В остальном устройство – обычный суточный таймер. Часы с двумя будильниками, один из которых (“I”) включает реле, второй (“O”) – отключает. Календаря нет, цикл включения-выключения повторяется каждые сутки. Если будильники настроены на одно и то же время – включение реле не произойдет. Отключение произойдет в любом случае. Если необходимо коммутировать нагрузку наоборот – можно использовать нормально-замкнутые контакты реле вместо нормально-разомкнутых. Контакты реле на 10А, 230VAC. Соответственно, можно управлять активной нагрузкой до 2 кВт.

При выключенных реле и подсветке дисплея устройство потребляет от источника питания ток около 2 мА. Как резервное питание я использовал три последовательно соединенных элемента ААА. Резервное и основное питание развязаны диодами Шоттки. При питании от батареи включение реле не происходит, но при восстановлении основного питания оно сработает, т.к. управляющий сигнал на затворе ключевого транзистора будет присутствовать.

Настройка производится пятью кнопками, подключенными к выводам RA1-RA3 микроконтроллера через диодный шифратор. При нажатии на кнопку на вход контроллера приходит двоичный номер кнопки – 001, 010, 011, 100, 101. Входы настроены на прерывание по изменению (IOC). Программа – обработчик так же анализирует и различает короткое (<1с) и длинное (>1с) нажатие. На плате устройства кнопки расположены в виде креста. В центре – кнопка №1 перехода к настройке часов и будильников (короткое нажатие – будильники, длинное – часы, для выхода из режима настройки повторно короткое/длинное нажатие соответственно), слева и справа – кнопки №№2, 3 перемещения курсора влево - вправо, сверху и снизу – кнопки №№4, 5 увеличения/уменьшения параметров. Кроме того, длинное нажатие на кнопку №3 «вправо» вызывает режим коррекции хода (для выхода из режима коррекции - повторно длинное нажатие). В режимах настройки часов и коррекции хода часы останавливаются. В режиме настройки будильников – продолжают идти, но при этом не обновляется время на дисплее. Автоповтора нажатия кнопок нет, банально не хватило памяти микроконтроллера для реализации - 2К забито «под завязку».

Корректирующий коэффициент хода можно менять в пределах -99/+99. Отрицательное значение замедляет ход часов, положительное – ускоряет. Единица коррекции – 1/1966080 секунды. Это 1 секунда за 22,7(5) суток. Корректирующий коэффициент сохраняется в энергонезависимой памяти микроконтроллера.

Устройство собрано из доступных деталей. Плата – односторонняя, простая. Две перемычки. Легко изготавливается методом ЛУТ в домашних условиях.

При включении питания часы могут начать идти не сразу, а через несколько секунд – это особенность реализации часового тактового генератора в микроконтроллере.

Для желающих промоделировать устройство в программе «Протеус» - новости неутешительные. Модели PIC контроллеров там не охватывают режим работы со встроенным часовым генератором.

Программа написана в среде MikroC на языке C. Исходный код в прикрепленном архиве.

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
C1-C5 Конденсатор0.01 мкФ5 Поиск в магазине ОтронВ блокнот
C6 Конденсатор0.1 мкФ1 Поиск в магазине ОтронВ блокнот
C7, C8 Конденсатор22 пФ2 Поиск в магазине ОтронВ блокнот
C9, C10 Электролитический конденсатор10 мкФ * 10 В2 Поиск в магазине ОтронВ блокнот
IC1 МК PIC 8-бит
PIC16F684
1 Поиск в магазине ОтронВ блокнот
K1 РелеJQC-3FF-S-Z1 Поиск в магазине ОтронВ блокнот
R1-R5 Резистор
4.7 кОм
5 Поиск в магазине ОтронВ блокнот
R6 Резистор
240 Ом * 0.25 Вт
1 Поиск в магазине ОтронВ блокнот
R7, R9 Резистор
1 кОм
2 Поиск в магазине ОтронВ блокнот
R8 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R10 Резистор
470 Ом
1 Поиск в магазине ОтронВ блокнот
VD1-VD4, VD7 Выпрямительный диод
1N4148
5 Поиск в магазине ОтронВ блокнот
VD5, VD6 Диод Шоттки
1N5817
2 Поиск в магазине ОтронВ блокнот
VT1 MOSFET-транзистор
IRLML2402
1 Поиск в магазине ОтронВ блокнот
ZQ1 Crystal32768 Hz1 Поиск в магазине ОтронВ блокнот
LCD LCD-дисплей1602A1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (5) | Я собрал (0) | Подписаться

+1
andro #
Хорошо, что учтена функция коррекции хода. Скажите пожалуйста, как прошить программу в данный МК?
Ответить
+1

[Автор]
seawar #
Нужен программатор для PIC (JDM, ExtraPIC, PicKit и т.д.), компьютер и программа. Я пользуюсь программой PICPgm под Windows.
Ответить
+1
Сергей #
А что нужно изменить, чтобы питание было от 12В?
Ответить
0

[Автор]
seawar #
Добавить понижающий стабилизатор с 12 на 5В. В идеале - импульсный step-down преобразователь, в простейшем случае - линейный на ИМС 7805.
Ответить
0
Сергей Викторович Посоховский #
Запитать от источника +5v. Самое простое - посмотреть как запитаны подобные схемы - их в сети куча.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
USB-реле (2 канала) LC-измеритель LC100-A
вверх