Наверное, каждый, кто занимается программированием микроконтроллеров, в свое время приходит к разработке какого-либо таймера. Вот, похоже, и мой час настал. Это мой первый проект на 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-Z | 1 | Поиск в магазине Отрон | ||
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 | Crystal | 32768 Hz | 1 | Поиск в магазине Отрон | ||
LCD | LCD-дисплей | 1602A | 1 | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- Alarm_clock_1.zip (33 Кб)
Комментарии (5) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]