Часы с термометром на pic16f628a
Часы с термометром на pic16f628a — 4.6 out of 5 based on 5 votes
Часы построены на микроконтроллере PIC16F628A, в качестве датчика используется DS18B20, транзисторы BC212 управляют общими анодами семисегментного индикатора, также в состав схемы входят несколько пассивных элементов.
Устройство настраивается с помощью 4-х кнопок. Одна увеличивает, другая уменьшает значение, третья кнопка используется для входа в меню, а также переключает элементы меню. При выходе из меню настройки сохраняются в EEPROM контроллера.
Если часы зависают по какой-то причине кнопкой сброса они могут быть перезапущены. Часы будут продолжать работать с последними сохраненными значениями. Микроконтроллер тактируется от внешнего кварца частотой 4МГц для более точного отсчета времени. PIC16F628 управляет дисплеем в режиме мультиплексирования.
Индикаторы находятся под контролем одного типа транзистора — BC212.
Как известно точность хода частов зависит от многих факторов — кварцевого резонатора, конденсаторов, температуры самого микроконтроллера, а также от качества электронных компонентов. В этой схеме, точность часов может быть установлена с помощью программного обеспечения.
Нам просто нужно измерить отклонение в секундах за час или более часа, расчитать значения используя формулу для расчета поправочного коэффициента и ввести эти значения в память контроллера при помощи меню.
Если правильно рассчитать поправочный коэффициент, то ход часов будет точным.
Настройка часов, описание меню:
— 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
Скачать прошивку и печатную плату
Источник: http://shemu.ru/cifrovueshemu/458-chasy-s-termometrom-na-pic16f628a
Часы-термометр-секундомер на PIC16F628A
Данное устройство позволят считать время, измерять температуру, использовать секундомер. Дополнительно это устройство ведет простую статистику температуры — минимум/максимум, а в остальном мало отличается от уймы подобных устройств. Для индикации используются светодиодные 7-ми сегментные индикаторы с десятичной точкой, зеленого свечения. Индикация динамическая.
Устройство имеет следующие функции:
- Индикация текущего времени в формате ЧЧ.ММ в течение 3-х секунд, потом показания переключаются на температуру, отображение с точностью до 0.1 градуса. Коррекция часов возможна только в этом режиме индикации.
- Индикация предельно низкой температуры на текущие сутки, индикатор высвечивает маленькую L в первом знакоместе и далее температура.
- Индикация предельно высокой температуры на ткущие сутки, индикатор высвечивает маленькую h в первом знакоместе.
- Средняя температура на текущие сутки, индикатор высвечивает маленькую c.
- Индикация предельно низкой температуры за всю историю работы термометра, в первом знакоместе большая буква L.
- Индикация предельно высокой температуры за всю историю работы, в первом знакоместе большая H.
- Средняя температура за всю историю, в первом знакоместе большая C.
- Индикация времени в формате ММ.СС (т.е. минуты и секунды). В этом режиме коррекция не возможна.
- Индикация количества дней пройденных с момента включения устройства.
- Секундомер — имеющий несколько пределов индикации (М.СС.Д — ММ.СС — Ч.ММ.С — ЧЧ.ММ). Предел счета секундомера 100часов. Далее секундомер останавливается и на дисплей выводиться BUSY.
- Рекорды температуры (не суточной, а общей за всю историю) сохраняются в энергонезависимой памяти EEPROM
- Включение/выключение/сброс секундомера — 1 короткий.
- Температура упала ниже нуля, и ранее за эти сутки не была ниже нуля (и так далее, при дальнейшем понижении) — 1 короткий.
- Температура поднялась выше 30 и ранее не была выше 30 (и так далее при дальнейшем повышении) — 2 коротких.
- Получен новый рекордный минимум или максимум температуры — 3 коротких.
- Переполнение секундомера — 1 длинный и 2 коротких.
- Включение устройства — 1 короткий.
Устройство собрано на печатной плате, и размещено в подходящем пластиковом корпусе. На лицевую панель выведены кнопки управления, а также просверлены отверстия диаметром 1,2 мм в районе звукового излучателя. Окошко для индикатора в попавшемся мне корпусе уже было.
Датчик закреплен на пластиковой трубочке на расстоянии примерно 30 см от окна, вокруг датчика из жести сделана коробочка с отверстиями, чтобы уменьшить нагрев датчика прямыми солнечными лучами. Для питания устройства от сети используется выносной блок питания — адаптор с выходным напряжением 9 вольт, в нем отсутствует стабилизатор.
Только трансформатор, диодный мост и конденсатор на 470мкФ. Конечно же лучше применить для питания этого устройства блок питания с резервным питанием, чтобы не сбрасывались часы при пропадании напряжения в сети. Микросхему стабилизатор 7805 нужно снабдить маленьким теплоотводом и обеспечить ее вентиляцию (несколько отверстий в корпусе).
Микроконтроллер можно применять абсолютно в любом температурном исполнении.
СКАЧАТЬ — Архив файлов (56 кб)
содержит проект под Proteus 7.5 SP3, готовую прошивку микроконтроллера и схему в формате GIF.В прошивке сразу заносяться в EEPROM рекордные температуры: минимальная +20, а максимальная +30 градусов, эти значения нетрудно откорректировать прямо в окне программы управления программатором, их нужно сделать равными текущей температуре +100, чтобы термометр вел правильную статистику.
Т.е. если нужно занести стартовую температуру равную 10 градусам, то на самом деле нужно внести 110. В шестнадцатеричном виде это будет 0х6E.
- Проста в повторении;
- Малое количество деталей;
- Надежность при длительном использовании и при воздействии возможных помех.
- Диапазон измеряемых температур———————————————от -55 до +125 С
- Разрешающая способность измерения и отображения
- от-50 до -10 и от +100 до +120 С————————————————————1 С
- от-9,9 до+99,9—————————————————————————0,1 С
- Точность измерения температуры DS18B20 прибор высокой точности имеющий заводскую калибровку.
- Напряжение питания———————————————————————-5 Вольт
- Индикация текущего времени в формате ЧЧ.ММ в течение 3-х секунд, потом показания переключаются на температуру, отображение с точностью до 0.1 градуса. Коррекция часов возможна только в этом режиме индикации.
- Индикация предельно низкой температуры на текущие сутки, индикатор высвечивает маленькую L в первом знакоместе и далее температура.
- Индикация предельно высокой температуры на ткущие сутки, индикатор высвечивает маленькую h в первом знакоместе.
- Средняя температура на текущие сутки, индикатор высвечивает маленькую c.
- Индикация предельно низкой температуры за всю историю работы термометра, в первом знакоместе большая буква L.
- Индикация предельно высокой температуры за всю историю работы, в первом знакоместе большая H.
- Средняя температура за всю историю, в первом знакоместе большая C.
- Индикация времени в формате ММ.СС (т.е. минуты и секунды). В этом режиме коррекция не возможна.
- Индикация количества дней пройденных с момента включения устройства.
- Секундомер — имеющий несколько пределов индикации (М.СС.Д — ММ.СС — Ч.ММ.С — ЧЧ.ММ). Предел счета секундомера 100часов. Далее секундомер останавливается и на дисплей выводиться BUSY.
- Рекорды температуры (не суточной, а общей за всю историю) сохраняются в энергонезависимой памяти EEPROM
- Включение/выключение/сброс секундомера — 1 короткий.
- Температура упала ниже нуля, и ранее за эти сутки не была ниже нуля (и так далее, при дальнейшем понижении) — 1 короткий.
- Температура поднялась выше 30 и ранее не была выше 30 (и так далее при дальнейшем повышении) — 2 коротких.
- Получен новый рекордный минимум или максимум температуры — 3 коротких.
- Переполнение секундомера — 1 длинный и 2 коротких.
- Включение устройства — 1 короткий.
Для измерения температуры используется датчик DS18B20, этот датчик выносной, устанавливается «за окном» для измерения уличной температуры. Остальные функции устройства реализованы чисто программно. Вывод данных на индикатор осуществляется последовательно по 2-м проводам ДАННЫЕ и СИНХРОНИЗАЦИЯ.
После того как последовательно выгружены все 8 бит в сдвиговый регистр К1533ИР24 открывается один из транзисторов и зажигает нужное знакоместо. Далее все знакоместа выключаются и в регистр загружается новое значение для следующей цифры и после этого открывается следующий транзистор, зажигая тем самым следующее знакоместо.
Это происходит очень быстро, поэтому визуально кажется, что светиться весь индикатор, все его знакоместа.
Для управления этим устройством используется всего 2 кнопки. Кнопка S1 последовательно переключает все режимы индикации. А кнопка S2 служит для включения режима коррекции часов или для запуска/остановки секундомера.
В режиме коррекции часов сначала мигают часовые цифры, кнопка S2 изменяет их значение на 1, если еще раз нажать S1, то будут мигать цифры минут, кнопка S2 будет влиять уже на них. Коррекция часов возможно только в режиме индикации часов/температуры. В остальных режимах (кроме секундомера) кнопка S1 никаких действий не производит.
В режиме секундомера кнопка S1 запускает счет, а повторное нажатие на нее останавливает. Сбрасуется секундомер в 0 по нажатию кнопки S2. Если секундомер уже сброшен, то нажатие S2 переведет устройство на следующий режим.
Кроме того, когда кнопки не нажимались в течение 10 секунд, индикаторы переходят на «приглушенный» режим (этот режим получился немного коряво, снижения яркости практически не заметно), чтобы снизить энергопотребление и нагрев стабилизатора 7805. Но как только будет нажата любая кнопка независимо от текущего режима индикации — индикаторы вновь вернуться на полную яркость и 10-ти секундный цикл повториться.
Некоторые примеры индикации:
— Температура.
— Время (ЧЧ.ММ — разделительная точка мигает).
— Максимальная температура за текущие сутки.
— Минимальная температуры за текуище сутки.
— Максимальная температура за всю историю работы
— Минимальная температура за всю инсторию работы.
— Количесто отработанных суток.
— Секундомер.
— минуты-секунды (ММ.СС — разделительная точка не мигает).
Многие события устройства имеют звуковую сигнализацию.
Источник: http://elektro-shemi.ru/chasy_termometr_sekundomer_na_pic16f628a.html
Часы с термометром на микроконтроллере
ПодробностиКатегория: МикроконтроллерыОпубликовано 15.06.2016 13:34Автор: AdminПросмотров: 1382
Простые часы с термометром на микроконтроллере AVR ATtiny2313 с выводом информации на семисегментный индикатор. Часы используют для отсчета времени микросхему DS1307 — часы реального времени и источником резервного питания в 3 В. Температура измеряется при помощи датчика температуры DS18B20.
Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды. Формат отображения времени ЧЧ.ММ (часы,минуты). Первый ноль не отображается. О ходе отсчета времени сигнализирует мигающая точка.
Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.
Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения.
Измеренная температура округляется до целого значения.
На дисплее имеются специальные символы повашения температуры (стрелка вверх) и понижения температуры (стрелка вниз), которые показывают как изменилась температура повисилась она или понизилась.
Если нажать на кнопке «меньше» то на дисплее сразу отобразится время.
Если кнопку «больше» то отобразится температура последнего измеренного значения и начнется новый процесс измеерения температуры и новое значение отобразиться на дисплее в этом случае точность составит десятые доли и в таком формате будет отображатся в течении минуты. Если датчик температуры неисправен или отсутсвует подключение то будет оторажаться только время.
Схема часов с термометром на микроконтроллере
Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен.
Прошивка для микроконтроллера
В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом. При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0.
Скачать: прошивка микроконтроллера
Вход в режим усановки времени осуществляется нажатием и удерживанием кнопки «ввод». После того как пройдет 3 секунды начнется режим установки минут. Для того чтобы устаноыить новое значение времени нужно использовать кнопки «больше» и «менеше».
Для того чтобы перейти в режим установки часов необходимо нажать на кнопку «ввод». Для того чтобы сохранить выбранное время нужно также нажать и удерживать кнопку «ввод» после этого программа выйдет из режима установки времени.
Если после этих всех операций в течении 10 секунд не будет нажата какия нибудь кнопка то часы перейдут в рабочее состояние и новое значение времени не будет сохраненно.
Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.
Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.
Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.
Исходник статьи: Часы-термометр
Источник: http://www.radio-magic.ru/microcontrollers/376-chasy-s-termometrom
Термометр на PIC16F628A | Полезный изобретения на микроконтроллерах
В данной статье будет описан цифровой термометр на микроконтроллере PIC16F628A с функцией памяти максимальной и минимальной измеренных температур.
Интернет пестрит всевозможными предложениями различных цифровых термометров на микроконтроллере, попадаются и запоминающие, но (меня поймет каждый радиолюбитель) всегда хочется чего-нибудь своего!!! Так и в моем случае появилась острая необходимость сделать цифровой термометр на микроконтроллере PIC16F628A, а нужен он мне был для измерения рабочей температуры мощных симисторов в процессе отладки терморегуляторов, позднее было принято решение использовать цифровой термометр и для измерения температуры в комнате и на улице.
Особенности принципиальной схемы цифрового термометра на микроконтроллере:
Принципиальная схема термометра показана на рисунке 1
Рисунок 1 — Схема принципиальная
Важная деталь — принципиальная схема запоминающего термометра на микроконтроллере разрабатывалась параллельно с печатной платой, так как микроконтроллер вещь универсальная (каждый пин любого из портов можно настроить как на вход, так и на выход). Отсюда – разводим сначала печатную плату, так как нам удобно, а после рисуем принципиальную схему. Это очень удобная методика! Признаюсь не моя, подглядел на каком-то из форумов! Автору респект!!!
Теперь немного подробнее рассмотрим особенности отдельных узлов принципиальной схемы запоминающего термометра на микроконтроллере PIC16F628A.
Сердцем термометра является микроконтроллер PIC16F628A фирмы Microchip. Это довольно распространенный и не дорогой микроконтроллер.
Немало важным достоинством, которого является наличие энергонезависимой памяти и внутренней RC цепочки, которую можно использовать в качестве тактового генератора с фиксированной частотой 4МГц. Такое решение позволяет исключить из схемы обычный кварцевый резонатор и два конденсатора.
Вдобавок освобождаются еще и два пина микроконтроллера. Сброс осуществляется при подаче питания, внешняя цепочка сброса исключена, тем самым уменьшилось общее количество деталей, и освободился еще один пин мк.
В качестве датчика температуры был выбран широко распространенный цифровой датчик DS18B20 фирмы Maxim, он не дорогой и передает информацию о измеренной температуре в цифровом виде, что позволяет не заботится о длине проводов, их сечении и прочее. Датчик DS18B20 способен измерять температуру от -55… +125 °С.
Информация выводится на 3-х разрядный семисегментный индикатор с общим катодом (ОК).
Резисторы R5-R12 – токоограничивающие, катоды индикатора включены через транзисторы, это сделано для того чтобы не нагружать отдельные пины микроконтроллера.
Кнопка SB1 нужна для отображения максимальной и минимальной измеренной температуры, а также для сброса этих величин. Кнопка SA1 переключает датчики(дом, улица).
В процессе разработки цифрового термометра на микроконтроллере была создана его упрощенная виртуальная модель в программе протеус см. рисунок 2
Печатная плата цифрового термометра, показанная на рисунке 3-4, была разработана в программе Sprint-Layout 5. Если программы нет, тогда можно воспользоваться PDF файлами печатной платы термометра, которые подготовлены в масштабе 1:1. Сам ими пользуюсь. В архиве также есть платы в зеркале. Текстолит выбран двухсторонний.
Рисунок 3 — Плата печатная вид снизу
Рисунок 4 — Плата печатная вид сверху
Плату разрабатывал, учитывая воздействие возможных помех. Для этого в схему были добавлены барьерные резисторы R1, R3, R14-R15. А также два конденсатора С1-С2. Термометр на микроконтроллере PIC16F628A, собранный из заведомо рабочих деталей, не требует наладки и начинает работать сразу после включения.
Рабочая программа для микроконтроллера была написана на языке ассемблер и отлажена в MPLab v 8.8. В результате получился вот какой термометр рисунки 5-7.
Рисунок 5 — Внешний вид термометра
Рисунок 6 — Внешний вид термометра(плюсовая температура)
Рисунок 7 — Внешний вид термометра(минусовая температура)
Рассмотрим что умеет делать термометр.При первом подключении цифрового термометра к источнику питания напряжением +5В. Однако в битах конфигурации микроконтроллера отключен детектор снижения напряжения, так что можно падавать и меньшее напряжение.
На индикаторе на некоторое время высветятся три прочерка, это стартовая заставка, далее будет отображаться текущая температура датчика. Температура выводится на индикатор в диапазоне от -9,9 до 99°С с точностью до 0,1°С, в диапазоне от -55 до -10 и от 100 до 125 °С с точностью до 1°С. Незначащий первый разряд по необходимости гаситься.
При первом запуске пороговые температуры обязательно перезапишутся во временной памяти, а после 5 минут и в энергонезависимой, при последующих запусках перезапись происходит только если выполняется условие превышения пороговых температур(максимальной или минимальной).
Почему энергонезависимая память перезапишется не сразу, а через 5 минут??? Это специальный прием, который задает щадящий режим работы энергонезависимой памяти. За первые пять минут температура может измениться несколько раз, а запишется все равно самая максимальная/минимальная.
О том, что происходит запись в энергонезависимую память, свидетельствуют три нижних квадрата, которые высвечиваются на некоторое время. Замечу, что в диапазоне температур, когда точность отображения 0,1°С сравнение порогов происходит с учетом десятых, в другом диапазоне десятые не учитываются. Температура измеряется где-то раз в 780 мс.
Если кратковременно нажать на кнопку SB1, то на индикатор будут поочередно выведены максимальная и минимальная измеренные температуры(и две заставки одна для максимальной -П- и одна для минимальной -U-), если кнопку нажать и удерживать до появлений трех прочерков, то произойдет сброс пороговых температур.
Термометр на PIC16F628A автоматически определяет наличие и исправность датчика DS18B20, исправность линии связи датчика DS18B20 с термометром.
При отсутствии и обрыве датчика DS18B20, коротком замыкании плюсового провода с проводом информации, при переполюсовке плюсового и минусового проводов линии связи датчика DS18B20 с термометром на индикаторе появится сообщение Er1. Каждую секунду происходит повторная проверка датчика DS18B20 и линии связи.
Если причина аварии будет устранена, термометр вернется к основному циклу. При коротком замыкании минусового провода линии связи с информационным проводом на индикаторе появиться сообщение Er2.
Готовую плату термометра разместил в китайском будильнике, предварительно выкинув от туда все не нужное. Вот что из этого получилось(рисунки 8, 9).
Рисунок 8 — Плата термометра в китайском будильнике
Рисунок 9 — Плата термометра в китайском будильнике
Технические характеристики:
И так подведем итоги…. У нас получился термометр на микроконтроллере PIC16F628A с энергонезависимой памятью, которую, по желанию, можно сбросить. Выбран щадящий режим записи в энергонезависимую память. Есть возможность просмотреть самую минимальную и самую максимальную измеренную температуру одним нажатием на кнопку.
Принципиальная схема термометра проста и не содержит дефицитных деталей. В схеме применяются микроконтроллер PIC16F628A и датчик температуры DS18B20. Печатная плата проработана с учетом воздействия возможных помех, размеры платы 70х42. Термометр способен работать от трех батареек типоразмера АА. Средний ток потребления 25мА.
Исходный файл прошивки микроконтроллера может пригодится новичкам в программировании.
Посмотрите также:
Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20)
Файлы к статье:
Архив с платами в формате PDF
Архив с проектом
Внимание! Архив с проектом был перезалит. Устранена одна ошибка неверной записи в энергонезависимую память. Все проверено в железе. Отдельное спасибо Михаилу Маруфенко за выявление ошибки!!!
Удачи всем! И пусть детали будут только исправные!
Источник: http://pichobbi.narod.ru/
Часы-термометр-секундомер на PIC16F628A, Библиотека устройств на микроконтроллерах
11.07.20110 комментариев
Данное устройство позволят считать время, измерять температуру, использовать секундомер. Дополнительно это устройство ведет простую статистику температуры — минимум/максимум, а в остальном мало отличается от уймы подобных устройств. Для индикации используются светодиодные 7-ми сегментные индикаторы с десятичной точкой, зеленого свечения. Индикация динамическая.
Устройство имеет следующие функции:
Для измерения температуры используется датчик DS18B20, этот датчик выносной, устанавливается «за окном» для измерения уличной температуры. Остальные функции устройства реализованы чисто программно. Вывод данных на индикатор осуществляется последовательно по 2-м проводам ДАННЫЕ и СИНХРОНИЗАЦИЯ.
После того как последовательно выгружены все 8 бит в сдвиговый регистр К1533ИР24 открывается один из транзисторов и зажигает нужное знакоместо. Далее все знакоместа выключаются и в регистр загружается новое значение для следующей цифры и после этого открывается следующий транзистор, зажигая тем самым следующее знакоместо.
Это происходит очень быстро, поэтому визуально кажется, что светиться весь индикатор, все его знакоместа.
Для управления этим устройством используется всего 2 кнопки. Кнопка S1 последовательно переключает все режимы индикации. А кнопка S2 служит для включения режима коррекции часов или для запуска/остановки секундомера.
В режиме коррекции часов сначала мигают часовые цифры, кнопка S2 изменяет их значение на 1, если еще раз нажать S1, то будут мигать цифры минут, кнопка S2 будет влиять уже на них. Коррекция часов возможно только в режиме индикации часов/температуры. В остальных режимах (кроме секундомера) кнопка S1 никаких действий не производит.
В режиме секундомера кнопка S1 запускает счет, а повторное нажатие на нее останавливает. Сбрасуется секундомер в 0 по нажатию кнопки S2. Если секундомер уже сброшен, то нажатие S2 переведет устройство на следующий режим.
Кроме того, когда кнопки не нажимались в течение 10 секунд, индикаторы переходят на «приглушенный» режим (этот режим получился немного коряво, снижения яркости практически не заметно), чтобы снизить энергопотребление и нагрев стабилизатора 7805. Но как только будет нажата любая кнопка независимо от текущего режима индикации — индикаторы вновь вернуться на полную яркость и 10-ти секундный цикл повториться.
Некоторые примеры индикации:
— Температура.
— Время (ЧЧ.ММ — разделительная точка мигает).
— Максимальная температура за текущие сутки.
— Минимальная температуры за текуище сутки.
— Максимальная температура за всю историю работы
— Минимальная температура за всю инсторию работы.
— Количесто отработанных суток.
— Секундомер.
— минуты-секунды (ММ.СС — разделительная точка не мигает).
Многие события устройства имеют звуковую сигнализацию.
Устройство собрано на печатной плате, и размещено в подходящем пластиковом корпусе. На лицевую панель выведены кнопки управления, а также просверлены отверстия диаметром 1,2 мм в районе звукового излучателя. Окошко для индикатора в попавшемся мне корпусе уже было.
Датчик закреплен на пластиковой трубочке на расстоянии примерно 30 см от окна, вокруг датчика из жести сделана коробочка с отверстиями, чтобы уменьшить нагрев датчика прямыми солнечными лучами. Для питания устройства от сети используется выносной блок питания — адаптор с выходным напряжением 9 вольт, в нем отсутствует стабилизатор.
Только трансформатор, диодный мост и конденсатор на 470мкФ. Конечно же лучше применить для питания этого устройства блок питания с резервным питанием, чтобы не сбрасывались часы при пропадании напряжения в сети. Микросхему стабилизатор 7805 нужно снабдить маленьким теплоотводом и обеспечить ее вентиляцию (несколько отверстий в корпусе).
Микроконтроллер можно применять абсолютно в любом температурном исполнении.
содержит проект под Proteus 7.5 SP3, готовую прошивку микроконтроллера и схему в формате GIF.
В прошивке сразу заносяться в EEPROM рекордные температуры: минимальная +20, а максимальная +30 градусов, эти значения нетрудно откорректировать прямо в окне программы управления программатором, их нужно сделать равными текущей температуре +100, чтобы термометр вел правильную статистику. Т.е. если нужно занести стартовую температуру равную 10 градусам, то на самом деле нужно внести 110. В шестнадцатеричном виде это будет 0х6E.
Источники: http://elektro-shemi.ru/chasy_termometr_sekundomer_na_pic16f628a.html
Источник: http://master-informa.ru/remont-nissan/krany/40143-chasy-termometr-sekundomer-na-pic16f628a-biblioteka-ustrojstv-na-mikrokontrollerakh