Печать

Часы с термометром на PIC16F628A

Опубликовано . Опубликовано в Устройства на PIC

Рейтинг:   / 11
ПлохоОтлично 

Часы построены на микроконтроллере PIC16F628A, в качестве датчика используется DS18B20, транзисторы BC212 управляют общими анодами семисегментного индикатора, также в состав схемы входят несколько пассивных элементов.

Устройство настраивается с помощью 4-х кнопок. Одна увеличивает, другая уменьшает значение, третья кнопка используется для входа в меню, а также переключает элементы меню. При выходе из меню настройки сохраняются в EEPROM контроллера. Если часы зависают по какой-то причине кнопкой сброса они могут быть перезапущены. Часы будут продолжать работать с последними сохраненными значениями. Микроконтроллер тактируется от внешнего кварца частотой 4МГц для более точного отсчета времени. PIC16F628 управляет дисплеем в режиме мультиплексирования. Индикаторы находятся под контролем одного типа транзистора - BC212.

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

Схема устройства

Часы с термометром на PIC16F628A

Настройка часов, описание меню:

- ho: Установка часов 0-23
- nn: Установка минут 0-59
- dn: Установка месяца
- dd: Установка числа месяца
- dY: Установка года
- dt: Установка формата индикации месяца. Если 1 - буквами(JA FE ||A AP ||Y JU JL AU SE oc no dE), 2 - цифрами(01 02 03 04 05 06 07 08 09 10 11 12).
- tt: Задержка индикации времени. Значение переменной 2-99с
- td: Задержка индикации даты. Значение переменной 2-99с. В случае если равно нулю дата не показывается!
- tE: Задержка индикации температуры. Значение переменной 2-99с. В случае если равно нулю температура не показывается!
- Sh: Калибровка шестнадцатеричного значения (см. ниже)
- Sl: Калибровка шестнадцатеричного значения (см. ниже)

Примеры установки калибровок Sh/Sl:

Отставание на 30 секунд в 24 часа: 30/86400 = 0,000347
1000000 - (1000000 * 0,000347) = 999653 (в десятичной системе) = F40E5 (шестнадцатеричной)

В результате шестнадцатеричное значение 40E5 раскладываем на Sh=40, SL=E5

Отставание на 2 секунды в 1 час: 2/3600 = 0,000555
1000000 - (1000000 * 0,000555) = 999445 (в десятичной системе) = F4015 (HEX)

Sh=40, SL=15

Спешат на 15 секунд за 60 дней: 15/5184000 = 0,000002
1000000 + (1000000 * 0,000555) = 1000002 (в десятичной системе) = F4242 (HEX)

Sh=42, SL=42

Автор: Rumcájsz

Файлы:
Файлы прошивок микроконтроллера для индикаторов с ОА и ОК, схема часов с индикатором общий катод, макеты печатных плат SprintLayout
Дата 27.02.2015 Размер файла 330.67 KB Закачек 2444

Комментарии  

-1 #1 Паятель 27.04.2015 12:27
Добрый день. Собирал часы по этой схеме, и обнаружилась одна непонятка. В железе не работает кнопка "Novel" (увеличение показаний по схеме),на прилагаемой печатке она обозначенакак "меньше", хотя в Протеусе все функционирует как надо. Печатка разыедена согласно схеме. Какая может быть причина?
Сообщить модератору
0 #2 AntonChip 27.04.2015 16:19
Проверяйте монтаж, у меня все работало, но я собирал на макетной плате
Сообщить модератору
-3 #3 necivan 17.05.2015 12:10
А зачем там мост? :-?
Сообщить модератору
0 #4 AntonChip 17.05.2015 15:23
Цитирую necivan:
А зачем там мост? :-?

Чтоб переменным напряжением запитывать можно было
Сообщить модератору
-1 #5 cifra7 20.06.2015 09:58
Тут применяется общий анод, а не катод. Мост и кренку можно убрать если запитывать об БП 5 вольт!
Сообщить модератору
-1 #6 Костя 13.07.2015 09:29
номиналы резисторов не соответствуют на печатнай плате. 150 ом - 8шт. в спринтеалое их 9. 4.7к два а на приниципиальной один.
Сообщить модератору
-1 #7 Костя 23.07.2015 18:56
Собрал часики - все прекрасно работает. Транзисторы заменил на кт361. Всем спб.
Сообщить модератору
0 #8 SSergej 17.11.2015 18:13
А как менять калибровку Sh/Sl: :roll:
Сообщить модератору
-2 #9 Николай666 28.01.2016 15:14
Здравствуйте
А как бы исходник посмотреть? есть возможность?
Сообщить модератору
-1 #10 sem-ant 08.04.2016 21:34
Можно ли в этом случаи использовать PIC16F84
Сообщить модератору
-1 #11 sem-ant 30.04.2016 18:54
Очень классные часы, большое спасибо Автору
Сообщить модератору
+1 #12 Vovan69 26.10.2016 16:47
Доброго времени суток AntonChip. Собрал Ваши часы и очень доволен, но есть одна проблема. Периодически, без какой именно системы, происходит сброс времени. Дата и все настройки сохраняются. Пробовал перешить PIC несколько раз, результат прежний. Подскажите в чем может быть причина.
Сообщить модератору
0 #13 MakSh 09.11.2016 10:34
Присоединюсь к вопросу #12 Vovan69, у меня точно такая же проблема
Сообщить модератору
0 #14 Vovan69 26.11.2016 18:55
#13 MakSh, удалось устранить проблему?
Сообщить модератору

Рекомендуем посмотреть