Site Loader

Содержание

Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20. — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

Начну из далека. Года два назад, когда я начал осваивать микроконтроллеры PIC16,  мне естественно хотелось собрать действующую схему. Был закуплен самый дешевый программатор, собрана схема, естественно самые простые часы на PIC16F84A. Все собрал, прошил, запустил, начал тестировать и понял, что это фигня. После примерно месяца работы, часы сбивались. Собрал еще одни на PIC16F628A с резервным питанием вроде, но они тоже через несколько месяцев работы сбивались. Понял я, что делать часы только на микроконтроллере не очень хорошая идея. Ну и естественно мой взор привлекли часы реального времени DS1307 с интерфейсом I2C. В сети достаточно много схем на этих микросхемах. Нашел, на мой взгляд самую оптимальную для себя с сайта:  http://c2.at.ua/load/pic/prostye_chasy_termometr_s_poocherednoj_smenoj_indikacii/12-1-0-136

Собрал, прошил, запустил. Отличные часы, простые, температуру показывают. Вроде все ничего, но при включение высвечивается на несколько секунд надпись «Soir». Возможно программист решил таким образом увековечить свой труд, но на мой взгляд это как то не правильно.  С этим я смерился. Собрал я этих часов аж три экземпляра. Но вдруг оказалось, что датчика температуры DS18B20 у меня больше нет, но осталось 3 датчика DS18S20. Это и оказалось тем решающим фактором, который подвиг меня на написание своей программы для этих часов. Ну, почти этих, все таки одну перемычку все же пришлось добавить.  К этому времени я уже достаточно поднаторел в программировании PIC контроллеров, опять же как мне кажется. Ну в общем все получилось. Все изготовленные мной ранее   часы были перепрошиты и уже несколько недель успешно работаю, вроде даже без нареканий. Соответственно две прошивки, для DS18B20 и DS18S20. Ну вот и вся история.

Соответственно  прошивка  для датчика температуры DS18S20:

 Файлы к статье Часы термометр на PIC16F628A

 для датчика температуры DS18B20:

 Файлы к статье Часы термометр на PIC16F628A

PROTEUS:

DS18S20:  Файлы к статье Часы термометр на PIC16F628A

DS18B20:  Файлы к статье Часы термометр на PIC16F628A

Печатная плата с контроллером: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

Плата индикатора: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

Плата кнопок: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

Часы + термометр на pic16f628a и led индикаторах

Часы с термометром на 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
  • Для измерения температуры используется датчик DS18B20, этот датчик выносной, устанавливается «за окном» для измерения уличной температуры. Остальные функции устройства реализованы чисто программно. Вывод данных на индикатор осуществляется последовательно по 2-м проводам ДАННЫЕ и СИНХРОНИЗАЦИЯ.

    После того как последовательно выгружены все 8 бит в сдвиговый регистр К1533ИР24 открывается один из транзисторов и зажигает нужное знакоместо. Далее все знакоместа выключаются и в регистр загружается новое значение для следующей цифры и после этого открывается следующий транзистор, зажигая тем самым следующее знакоместо.

    Это происходит очень быстро, поэтому визуально кажется, что светиться весь индикатор, все его знакоместа.

                       

    Для управления этим устройством используется всего 2 кнопки. Кнопка S1 последовательно переключает все режимы индикации. А кнопка S2 служит для включения режима коррекции часов или для запуска/остановки секундомера.

    В режиме коррекции часов сначала мигают часовые цифры, кнопка S2 изменяет их значение на 1, если еще раз нажать S1, то будут мигать цифры минут, кнопка S2 будет влиять уже на них. Коррекция часов возможно только в режиме индикации часов/температуры. В остальных режимах (кроме секундомера) кнопка S1 никаких действий не производит.

    В режиме секундомера кнопка S1 запускает счет, а повторное нажатие на нее останавливает. Сбрасуется секундомер в 0 по нажатию кнопки S2. Если секундомер уже сброшен, то нажатие S2 переведет устройство на следующий режим.

    Кроме того, когда кнопки не нажимались в течение 10 секунд, индикаторы переходят на «приглушенный» режим (этот режим получился немного коряво, снижения яркости практически не заметно), чтобы снизить энергопотребление и нагрев стабилизатора 7805. Но как только будет нажата любая кнопка независимо от текущего режима индикации — индикаторы вновь вернуться на полную яркость и 10-ти секундный цикл повториться.

    Некоторые примеры индикации:
    — Температура.

    — Время (ЧЧ.ММ — разделительная точка мигает).

    — Максимальная температура за текущие сутки.

    — Минимальная температуры за текуище сутки.

    — Максимальная температура за всю историю работы

    — Минимальная температура за всю инсторию работы.

    — Количесто отработанных суток.

    — Секундомер.

    — минуты-секунды (ММ.СС — разделительная точка не мигает).

    Многие события устройства имеют звуковую сигнализацию.

  • Включение/выключение/сброс секундомера — 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.

  • Источник: 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 – Плата термометра в китайском будильнике

    Технические характеристики:

    • Диапазон измеряемых температур———————————————от -55 до +125 С
    • Разрешающая способность измерения и отображения
    • от-50 до -10 и от +100 до +120 С———————————————————–1 С
    • от-9,9 до+99,9—————————————————————————0,1 С
    • Точность измерения температуры DS18B20 прибор высокой точности имеющий заводскую калибровку.
    • Напряжение питания———————————————————————-5 Вольт

    И так подведем итоги…. У нас получился термометр на микроконтроллере PIC16F628A с энергонезависимой памятью, которую, по желанию, можно сбросить. Выбран щадящий режим записи в энергонезависимую память. Есть возможность просмотреть самую минимальную и самую максимальную измеренную температуру одним нажатием на кнопку.

    Принципиальная схема термометра проста и не содержит дефицитных деталей. В схеме применяются микроконтроллер PIC16F628A и датчик температуры DS18B20. Печатная плата проработана с учетом воздействия возможных помех, размеры платы 70х42. Термометр способен работать от трех батареек типоразмера АА. Средний ток потребления 25мА.

    Исходный файл прошивки микроконтроллера может пригодится новичкам в программировании.

    Посмотрите также:

    Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20)

    Файлы к статье:

    Архив с платами в формате PDF
    Архив с проектом

    Внимание! Архив с проектом был перезалит. Устранена одна ошибка неверной записи в энергонезависимую память. Все проверено в железе. Отдельное спасибо Михаилу Маруфенко за выявление ошибки!!!

    Удачи всем! И пусть детали будут только исправные!

    Источник: http://pichobbi.narod.ru/

    Часы-термометр-секундомер на PIC16F628A, Библиотека устройств на микроконтроллерах

    11.07.20110 комментариев

    Данное устройство позволят считать время, измерять температуру, использовать секундомер. Дополнительно это устройство ведет простую статистику температуры — минимум/максимум, а в остальном мало отличается от уймы подобных устройств. Для индикации используются светодиодные 7-ми сегментные индикаторы с десятичной точкой, зеленого свечения. Индикация динамическая.

    Устройство имеет следующие функции:

  • Индикация текущего времени в формате ЧЧ.ММ в течение 3-х секунд, потом показания переключаются на температуру, отображение с точностью до 0.1 градуса. Коррекция часов возможна только в этом режиме индикации.
  • Индикация предельно низкой температуры на текущие сутки, индикатор высвечивает маленькую L в первом знакоместе и далее температура.
  • Индикация предельно высокой температуры на ткущие сутки, индикатор высвечивает маленькую h в первом знакоместе.
  • Средняя температура на текущие сутки, индикатор высвечивает маленькую c.
  • Индикация предельно низкой температуры за всю историю работы термометра, в первом знакоместе большая буква L.
  • Индикация предельно высокой температуры за всю историю работы, в первом знакоместе большая H.
  • Средняя температура за всю историю, в первом знакоместе большая C.
  • Индикация времени в формате ММ.СС (т.е. минуты и секунды). В этом режиме коррекция не возможна.
  • Индикация количества дней пройденных с момента включения устройства.
  • Секундомер — имеющий несколько пределов индикации (М.СС.Д — ММ.СС — Ч.ММ.С — ЧЧ.ММ). Предел счета секундомера 100часов. Далее секундомер останавливается и на дисплей выводиться BUSY.
  • Рекорды температуры (не суточной, а общей за всю историю) сохраняются в энергонезависимой памяти EEPROM
  • Для измерения температуры используется датчик DS18B20, этот датчик выносной, устанавливается «за окном» для измерения уличной температуры. Остальные функции устройства реализованы чисто программно. Вывод данных на индикатор осуществляется последовательно по 2-м проводам ДАННЫЕ и СИНХРОНИЗАЦИЯ.

    После того как последовательно выгружены все 8 бит в сдвиговый регистр К1533ИР24 открывается один из транзисторов и зажигает нужное знакоместо. Далее все знакоместа выключаются и в регистр загружается новое значение для следующей цифры и после этого открывается следующий транзистор, зажигая тем самым следующее знакоместо.

    Это происходит очень быстро, поэтому визуально кажется, что светиться весь индикатор, все его знакоместа.

    Для управления этим устройством используется всего 2 кнопки. Кнопка S1 последовательно переключает все режимы индикации. А кнопка S2 служит для включения режима коррекции часов или для запуска/остановки секундомера.

    В режиме коррекции часов сначала мигают часовые цифры, кнопка S2 изменяет их значение на 1, если еще раз нажать S1, то будут мигать цифры минут, кнопка S2 будет влиять уже на них. Коррекция часов возможно только в режиме индикации часов/температуры. В остальных режимах (кроме секундомера) кнопка S1 никаких действий не производит.

    В режиме секундомера кнопка S1 запускает счет, а повторное нажатие на нее останавливает. Сбрасуется секундомер в 0 по нажатию кнопки S2. Если секундомер уже сброшен, то нажатие S2 переведет устройство на следующий режим.

    Кроме того, когда кнопки не нажимались в течение 10 секунд, индикаторы переходят на «приглушенный» режим (этот режим получился немного коряво, снижения яркости практически не заметно), чтобы снизить энергопотребление и нагрев стабилизатора 7805. Но как только будет нажата любая кнопка независимо от текущего режима индикации — индикаторы вновь вернуться на полную яркость и 10-ти секундный цикл повториться.

    Некоторые примеры индикации:

    – Температура.

    – Время (ЧЧ.ММ — разделительная точка мигает).

    – Максимальная температура за текущие сутки.

    — Минимальная температуры за текуище сутки.

    — Максимальная температура за всю историю работы

    — Минимальная температура за всю инсторию работы.

    – Количесто отработанных суток.

    – Секундомер.

    – минуты-секунды (ММ.СС — разделительная точка не мигает).

    Многие события устройства имеют звуковую сигнализацию.

  • Включение/выключение/сброс секундомера — 1 короткий.
  • Температура упала ниже нуля, и ранее за эти сутки не была ниже нуля (и так далее, при дальнейшем понижении) — 1 короткий.
  • Температура поднялась выше 30 и ранее не была выше 30 (и так далее при дальнейшем повышении) — 2 коротких.
  • Получен новый рекордный минимум или максимум температуры — 3 коротких.
  • Переполнение секундомера — 1 длинный и 2 коротких.
  • Включение устройства — 1 короткий.
  • Устройство собрано на печатной плате, и размещено в подходящем пластиковом корпусе. На лицевую панель выведены кнопки управления, а также просверлены отверстия диаметром 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

    Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20. — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

    Начну из далека. Года два назад, когда я начал осваивать микроконтроллеры PIC16,  мне естественно хотелось собрать действующую схему. Был закуплен самый дешевый программатор, собрана схема, естественно самые простые часы на PIC16F84A. Все собрал, прошил, запустил, начал тестировать и понял, что это фигня. После примерно месяца работы, часы сбивались. Собрал еще одни на PIC16F628A с резервным питанием вроде, но они тоже через несколько месяцев работы сбивались. Понял я, что делать часы только на микроконтроллере не очень хорошая идея. Ну и естественно мой взор привлекли часы реального времени DS1307 с интерфейсом I2C. В сети достаточно много схем на этих микросхемах. Нашел, на мой взгляд самую оптимальную для себя с сайта:  http://c2.at.ua/load/pic/prostye_chasy_termometr_s_poocherednoj_smenoj_indikacii/12-1-0-136

    Собрал, прошил, запустил. Отличные часы, простые, температуру показывают. Вроде все ничего, но при включение высвечивается на несколько секунд надпись «Soir». Возможно программист решил таким образом увековечить свой труд, но на мой взгляд это как то не правильно.  С этим я смерился. Собрал я этих часов аж три экземпляра. Но вдруг оказалось, что датчика температуры DS18B20 у меня больше нет, но осталось 3 датчика DS18S20. Это и оказалось тем решающим фактором, который подвиг меня на написание своей программы для этих часов. Ну, почти этих, все таки одну перемычку все же пришлось добавить.  К этому времени я уже достаточно поднаторел в программировании PIC контроллеров, опять же как мне кажется. Ну в общем все получилось. Все изготовленные мной ранее   часы были перепрошиты и уже несколько недель успешно работаю, вроде даже без нареканий. Соответственно две прошивки, для DS18B20 и DS18S20. Ну вот и вся история.

    Соответственно  прошивка  для датчика температуры DS18S20:

     Файлы к статье Часы термометр на PIC16F628A

     для датчика температуры DS18B20:

     Файлы к статье Часы термометр на PIC16F628A

    PROTEUS:

    DS18S20:  Файлы к статье Часы термометр на PIC16F628A

    DS18B20:  Файлы к статье Часы термометр на PIC16F628A

    Печатная плата с контроллером: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

    Плата индикатора: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

    Плата кнопок: Файлы к статье Часы термометр на PIC16F628A, DS1307, DS18B20 или DS18S20.

    РадиоКот :: Часы — будильник на микроконтроллере PIC16F628A.

    РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

    Часы — будильник на микроконтроллере PIC16F628A.

    Вашему вниманию предлагаются часы на МК PIC16F628A с точностью хода 30 секунд в год.
    Давайте посмотрим схему, а потом будет длинный расказ о том, что есть в этих часах и как ими пользоваться.

    Ну а теперь — обещанный расказ, итак:
    -Реализовано 2 режима отображения часы-минуты и минуты-секунды. Переключение кнопкой «Инкремент«.

    -При нажатии кнопки «Коррекция» часы переходят в режим коррекции секунд (секунды обнуляются кнопкой «Инкремент«). Следующее нажатие кнопки «Коррекция» переводит часы в режим коррекции минут (минуты увеличиваются кнопкой «Инкремент«). Ещё одно нажатие кнопки «Коррекция» — переход к коррекции часов (часы увеличиваются кнопкой «Инкремент«). Следующее нажатие кнопки «Коррекция» — возврат в режим отображения часов-минут.

    -При нажатии кнопки «Будильник» часы переходят в режим отображения уставки будильника. В этом режиме кнопкой «Инкремент» включаем будильник. Включение подтверждается коротким звуковым сигналом и включается мигающая точка. Корректируется уставка будильника после нажатия кнопки «Коррекция«. После первого нажатия — минуты, после второго — часы (увеличиваются кнопкой «Инкремент«). После третьего нажатия — переход в обычный режим.

    -В часах реализована функция коррекции посредством подстройки константы (режим подстройки включается при удержании кнопки «Коррекция» дольше 1-й секунды). По умолчанию константа равна 1032 микросекунды в секунду. При отставании часов константу увеличиваем (кнопка «Инкремент«) на величину отставания вычисленное в микросекудах за 1 секунду. Если часы спешат, константу уменьшаем (кнопка «Будильник«) по тому же принципу.

    -Возврат в обычный режим осуществляется из режимов коррекции через 3 минуты после последнего нажатия любой из кнопок.

    -При срабатывании будильника подаётся звуковой сигнал, который отключается нажатием любой из кнопок или автоматически через примерно 4 минуты (за 4 минуты вполне можно проснуться (Ох не факт, не факт… Прим. Кота.))

    -При установке батареек соответственно схеме, часы продолжают идти при отключении от сети. Использованы 3 батарейки А3 для наручных часов.

    Прошивку берем тут.
    Исходники тут.
    Печатная плата для индикатора 5620 тут.(от maverick5334)
    Печатная плата для индикатора АЛС324 тут.(от maverick5334)

    Все вопросы в Форум.


    Как вам эта статья?

    Заработало ли это устройство у вас?


    Эти статьи вам тоже могут пригодиться:

    Цифровые часы-будильник с календарем и синтезатором мелодий

    В основу конструкции положена микросхема DS1307 фирмы Dallas. Эта микросхема представляет собой модуль часов реального времени со встроенным календарем (далее ЧРВ). В выключенном состоянии счет времени в DS1307 поддерживается от внешнего литиевого элемента типа CR2032 (компьютерная батарейка-таблетка) напряжением 3В. DS1307 является нановаттным устройством с чрезвычайно малым током потребления в 300 нА, что позволяет сохранять счет времени до десяти лет. Благодаря высокоточному кварцевому резонатору на 32768 Гц часы имеют повышенную точность хода.

    Микросхема отсчитывает секунды, минуты, часы, дату месяца, месяц, день недели и год с компенсацией високосного года и имеют календарь, действительный до 2100 года.

    Памятью часов является микроконтроллер PIC16F628A, который общается с микросхемой часов реального времени по последовательному интерфейсу I2C. Ниже схема часов.

    Часы работают следующим образом. Микроконтроллер DD2 последовательно записывает байты в сдвиговый регистр DD3: на линии DS устанавливается очередной бит необходимого логического уровня (0 или 1), затем задним фронтом сигнала (переход из 1 в 0) на линии CH_CP задвигает этот бит в регистр и, наконец, задним фронтом на линии ST_CP инициирует появление на выходах регистра записанных последних восьми бит. Далее с выводов регистра сдвига Q0-Q7 через ограничительные резисторы R1-R8 сигналы подаются на соответствующие разряды семи сегментных индикаторов, и кнопки управления SB1-SB3. Индикация работает в динамическом режиме, для чего на контроллере, на линиях RB2-RB7 формируются управляющие импульсы, которые в свою очередь проходят через ограничительные резисторы R15-R20 и поступают на электронные ключи VT1-VT6. Сигналы с коллекторов электронных ключей поочередно включают шесть разрядов индикатора. По линиям RA6 и RA7 микроконтроллер обменивается информацией с ЧРВ.

    К линиям микроконтроллера RA2 и RA0 через ограничительные резисторы R21 и R22 подключены светодиоды HL2 и HL3, предназначенные для индикации режимов установки параметров.

    Во время срабатывания будильника на линии RA1 микроконтроллера DD2 устанавливается высокий логический уровень, который через ограничительный резистор R23 подается на светодиод HL1, зажигание которого индицирует работу будильника.

    Одновременно с ограничительного резистора R23 сигнал подается на вывод 2 микросхемы DD4, которая представляют собой синтезатор мелодий. В авторском варианте данная микросхема проигрывает мелодию “ITS SMALL WORLD”.

    Микросхемы серий UM66T имеют одну запрграмированную мелодию, например:
    BT66T-19L, ВТ8028-01 — FOR ELISE К Элизе
    BT66T-8L, ВТ8028-03 — HAPPY BIRTHDAY День рождения
    BT66T-2L, ВТ8028-04 — JINGLE BELL Звонкий колокольчик
    BT66T-12L.BT8028-11 — LOVE STORY История любви
    BT66T-68L ВТ8028-05 — ITS SMALL

    Часы

    Прибор предназначен для определения текущего времени или продолжительности временных интервалов

    Автомобильные часы — вольтметр на ATtiny261

    Этот простой прибор предназначен для установки в автомобиль и включает в себя функции отображения времени и напряжения бортовой сети в пределах 10… 16B.

    Автор: u33

    7 0 [0]

    Часы на газоразрядных индикаторах

    В статье описывается сборка часов на газоразрядных индикаторах. Эти оригинальные и необычные часы могут стать отличным дополнением интерьера.

    Автор: BARS_

    977 4.9 [9]
    Похожие статьи:

    Таймер присутствия на PIC16F628A

    Таймер присутствия каждый день на определенное время включает свет, создавая эффект присутствия. А также часы с резервным питанием.

    Автор: VIG

    4 0 [0]

    Часы на газоразрядных индикаторах с ATmega8

    Часы размещены в деревянном корпусе, сделанным «Под старину» — настоящее украшение для любого дома! В конструкции используются четыре газоразрядных индикатора LC513. Для точного расчета времени применена микросхема PCF8583. Сердцем устройства является микроконтроллер ATMega8. Чтобы не настраивать заново время при отключении питания, используется электролитический конденсатор высокой емкости. Лампы питаются от напряжения 150В.

    Автор: dossalab

    25 0 [0]
    Похожие статьи:

    LED часы на ATtiny2313 и DS1307

    LED часы на семисементных индикаторах на микроконтроллере ATtiny2313 и микросхеме DS1307. Считают время даже когда выключены!

    Автор:

    139 4.4 [5]
    Похожие статьи: 2012 г.

    Часы на Arduino с использованием стандартного индикатора

    Эти простые часы на Arduino прекрасно справляются с поставленной на них задачей индикации времени. Они поддерживают относительно точное время без использования RTC микросхем, для индикации которого используется стандартный дисплей, применяемый во многих готовых часах. Также возможно регулировать яркость цифр.

    Автор: Т@р@с

    2 0 [0]

    Электронные часы-будильник на газоразрядных индикаторах и МК

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

    Автор: crazzian

    384 4.9 [7]
    Похожие статьи:

    Модернизация бортового компьютера на ATmega8

    После публикации статьи Бортовой компьютер (часы, двухканальный термометр, вольтметр на ATmega8 и LCD 16х2) прошел уже почти год, и за это время я получил много писем с просьбами изменить прошивку под нужды пользователей. Я решил добавить в схему устройства кнопки, организовать меню с настройками, чтобы каждый мог настроить БК под себя.

    Автор: u33

    368 5 [6]
    Похожие статьи: Весь список тегов

    alexxlab

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *