Top.Mail.Ru
Часы с термометром на PIC16F628A - Микроконтроллеры и Технологии

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

Комментарии  

Цитирую Иван23432304:

индикаторы с ОА или ОК используются в данной схеме?


Есть две схемы так для ОА(схема в статье) так и для ОК(схема в архиве), есть два варианта прошивки микроконтроллера под ОК или ОА,
Может кто описать как происходит или через какой интервал времени показывает температуру?
В архиве 2 прошивки одна digitalis_ora16f628-ds18b20, вторая ds-clock-cc какая из них для ОА:?

Цитирую Иллиданович:

В архиве 2 прошивки одна digitalis_ora16f628-ds18b20, вторая ds-clock-cc какая из них для ОА:?


Общий анод digitalis_ora16 f628-ds18b20
Какой ток потребляют часы?
А перемычки делать обязательно как на печатной плате показано?
Может кто-то связаться со мной, у кого заработали часы, нужна помощь!вк https://vk.com/id136325858
Нет. Перемычки не обязательно как на плате делать.Имею виду под большую плату.
Можно ли выслать исходный файл прошивки , т.к. даичик температуры показывает температуру с погрешностью: + 2 градуса. Возможно ли исправить это с помощью программного кода .
С уважением , Александр.
+1
Можете не собирать - зря потратите время - часы безбожно врут, не спасает внутренняя коррекция времени.
+2
часы идут хорошо запишите hex код 3482 точность хода отличная
Здравствуйте, а можете подправить прошивку под pic16f88.

Цитирую Дениска8686:

Здравствуйте, а можете подправить прошивку под pic16f88.


Нет возможности, автор не публикует исходник
Драствуйте. Часы спешат на 1 минуту за 1 час. Моглибы вы прикинуть расчет калибровки?
Часы отличные даже очень. Было бы хорошо если бы был ночной режим. Это возможно подправить?

Цитирую sem-ant:

Часы отличные даже очень. Было бы хорошо если бы был ночной режим. Это возможно подправить?

Большое спасибо за прекрасный проект
Кому нужно исправить отставание, или спешку. Есть готовый калькулятор, пишите скину.