Часы построены на микроконтроллере 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


Архив для статьи "Часы с термометром на PIC16F628A"
Описание: Файлы прошивок микроконтроллера для индикаторов с ОА и ОК, схема часов с индикатором общий катод, макеты печатных плат SprintLayout
Размер файла: 330.67 KB Количество загрузок: 5 533 Скачать

Комментарии  

0 #21 AntonChip 24.04.2018 08:14
Цитирую Иван23432304:
индикаторы с ОА или ОК используются в данной схеме?

Есть две схемы так для ОА(схема в статье) так и для ОК(схема в архиве), есть два варианта прошивки микроконтроллер а под ОК или ОА,
Сообщить модератору
0 #22 Головач Иван Иванов 10.05.2018 15:35
Может кто описать как происходит или через какой интервал времени показывает температуру?
Сообщить модератору
0 #23 Иллиданович 11.05.2018 21:14
В архиве 2 прошивки одна digitalis_ora16 f628-ds18b20, вторая ds-clock-cc какая из них для ОА:?
Сообщить модератору
0 #24 AntonChip 11.05.2018 21:26
Цитирую Иллиданович:
В архиве 2 прошивки одна digitalis_ora16f628-ds18b20, вторая ds-clock-cc какая из них для ОА:?

Общий анод digitalis_ora16 f628-ds18b20
Сообщить модератору
0 #25 Головач Иван Иванов 16.05.2018 21:40
Какой ток потребляют часы?
Сообщить модератору
0 #26 Головач Иван Иванов 17.05.2018 09:07
А перемычки делать обязательно как на печатной плате показано?
Сообщить модератору
0 #27 Головач Иван Иванов 19.05.2018 23:39
Может кто-то связаться со мной, у кого заработали часы, нужна помощь!вк vk.com/id136325858
Сообщить модератору
0 #28 Григорий 01.06.2018 14:21
Нет. Перемычки не обязательно как на плате делать.Имею виду под большую плату.
Сообщить модератору
0 #29 Александр Петрович 22.11.2018 12:33
Можно ли выслать исходный файл прошивки , т.к. даичик температуры показывает температуру с погрешностью: + 2 градуса. Возможно ли исправить это с помощью программного кода .
С уважением , Александр.
Сообщить модератору
+1 #30 bulbash 16.01.2019 12:14
Можете не собирать - зря потратите время - часы безбожно врут, не спасает внутренняя коррекция времени.
Сообщить модератору
+2 #31 коля 08.02.2019 21:06
часы идут хорошо запишите hex код 3482 точность хода отличная
Сообщить модератору
0 #32 Дениска8686 06.03.2019 06:56
Здравствуйте, а можете подправить прошивку под pic16f88.
Сообщить модератору
0 #33 AntonChip 07.03.2019 22:06
Цитирую Дениска8686:
Здравствуйте, а можете подправить прошивку под pic16f88.

Нет возможности, автор не публикует исходник
Сообщить модератору
0 #34 drflex 16.08.2021 18:32
Драствуйте. Часы спешат на 1 минуту за 1 час. Моглибы вы прикинуть расчет калибровки?
Сообщить модератору
0 #35 sem-ant 21.11.2023 03:50
Часы отличные даже очень. Было бы хорошо если бы был ночной режим. Это возможно подправить?
Сообщить модератору
0 #36 sem-ant 21.11.2023 03:51
Цитирую sem-ant:
Часы отличные даже очень. Было бы хорошо если бы был ночной режим. Это возможно подправить?
Большое спасибо за прекрасный проект
Сообщить модератору
0 #37 Григорий Иванович Ро 10.08.2024 11:41
Кому нужно исправить отставание, или спешку. Есть готовый калькулятор, пишите скину.
Сообщить модератору