Таймер термостат на микроконтроллере

Таймер термостат на микроконтроллере

С. КОРЯКОВ, г. Шахты Ростовской обл.

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

Принципиальная схема предлагаемого термометра изображена на рис. 1.

Его основа — популярный микроконтроллер (МК) PIC16F84A (DD1). Для измерения температуры использован интегральный цифровой датчик (ВК1) DS18B20 фирмы MAXIM. Эта микросхема не требует калибровки и позволяет измерять температуру окружающей среды от -55 до +125 С, причем в интервале -10. ..+85 °С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5 °С. Датчик DS18B20 — наиболее совершенный из широко известного семейства DS18X2X, выпускавшихся ранее под маркой Dallas Semiconductor. В отличие от функциональных аналогов DS1820 и DS18S20 он перед началом измерения позволяет задать необходимую относительную точность преобразования температуры из следующего ряда значений: 0,5; 0,25; 0,125 и 0,0625 °С, при этом время измерения равно соответственно 93,75; 187,5; 375 и 750 мс.

Принцип действия датчика DS18X2X основан на подсчете числа импульсов, вырабатываемых генератором с низким температурным коэффициентом во временном интервале, который формируется генератором с другим температурным коэффициентом, при этом внутренней логикой датчика учитывается и компенсируется параболическая зависимость частот обоих генераторов от температуры.

Обмен управляющими командами и данными между датчиком ВК1 и МК DD1, работающим на частоте 4 МГц, осуществляется по однопроводной двунаправленной шине передачи данных 1 -Wire. Каждый экземпляр DS18B20 имеет уникальный 48-битный номер, записанный с помощью лазера в ПЗУ в процессе производства, что позволяет подключать к одной шине практически любое число таких приборов. Ограничивающим фактором является в основном только общее время, затрачиваемое на последовательный опрос всех датчиков, подключенных к сети.

С периодом, равным 1 с, МК DD1 посылает датчику ВК1 команду на запуск процесса измерения температуры с точностью 0,0625 °С и получает от него результат предыдущего замера. Принятый от датчика 12-битный код, соответствующий измеренной температуре, преобразуется в десятичную форму, округляется до десятых долей градуса и выводится на светодиодный индикатор HG1 в динамическом режиме. Подачей напряжения лог. 0 на один из выходов RAO, RA1 или RA2 МК включает соответствующий разряд индикатора, выводя при этом на выходы RB0—RB6 семиэлементный код отображаемой в данном разряде цифры. Управление точкой на индикаторе, отделяющей целую часть отображаемой температуры от десятичной, МК производит через выход с открытым стоком RA4. Период отображения всех трех разрядов индикатора составляет примерно 12,3 мс (частота — 81 Гц).

Так как в приборе применен трехразрядный индикатор, в интервале от-19,9 до +99,9 °С температура отображается с точностью до 0,1 °С, а в интервалах -55. -20 и +100. +125 °С — с точностью до 1 °С. Кроме того, в этих интервалах абсолютная погрешность измерения температуры возрастает до ±2 °С, поэтому отображение температуры с точностью до десятых долей градуса теряет смысл.

В конце каждого периода отображения информации на индикаторе МК проверяет состояние кнопок SB1 и SB2, для чего на выходах RAO—RA2 устанавливает напряжение высокого логического уровня (это соответствует отключению всех разрядов индикатора HG1), а на выходе RA4 — напряжение лог. 0. Разряды RB5, RB6 перенастраиваются на ввод, при этом к ним подключаются внутренние «подтягивающие» резисторы, соединенные с шиной питания +5 В. Таким образом, при нажатии на кнопку SB1 или SB2 высокий логический уровень напряжения на RB5, RB6 сменяется низким, что и отслеживается МК. Подключенные к этим разрядам элементы светодиодного индикатора не оказывают существенного влияния на состояние указанных входов МК, поскольку ток в обратном направлении через них пренебрежимо мал. Удержание кнопок в нажатом состоянии не влияет на работу индикаторов в период отображения информации, так как ток между выходами RA4 и RB5, RB6 через кнопки SB1, SB2 ограничен резисторами R4, R5.

Питается прибор от сети переменного тока напряжением 220 В через балластный конденсатор С3. Благодаря диодному мосту VD1 через стабилитрон VD2 проходят обе полуволны сетевого напряжения. В результате значительно снижаются пульсации напряжения на конденсаторе С5 и становится возможным уменьшить емкость конденсатора С3, от которой зависит максимальный ток, отдаваемый источником питания в нагрузку.

Времязадающая цепь R1C4R2 формирует паузу перед запуском МК, необходимую для того, чтобы после включения устройства в сеть напряжение на конденсаторах С5, С6 успело возрасти до уровня, обеспечивающего нормальную работу МК.

Читайте также:  Как убрать трубы в ванной под плитку

При включении звукового сигнала, когда вступает в работу каскад на транзисторе VT1 с включенным в его коллекторную цепь звукоизлучателем НА1, потребляемый устройством ток значительно увеличивается, поэтому в программе МК предусмотрено отключение индикатора на время подачи сигнала. Питается этот каскад энергией, накопленной в конденсаторе С5, что приводит к большим «просадкам» напряжения на нем. Для поддержания стабильного напряжения питания МК и датчика температуры в устройство введены интегральный стабилизатор напряжения DA1 и оксидный конденсатор большой емкости С6. Если звуковая сигнализация не нужна, микросхему DA1 и конденсатор С5 можно исключить, но в этом случае Д815Е (VD2) необходимо заменить стабилитроном Д815А с напряжением стабилизации 5,6 В.

Коды «прошивки» ПЗУ МК для термометра с функцией таймера приведены в табл. 1.

При нажатии на кнопку SB1 подается короткий звуковой сигнал и на индикаторе появляется значение оставшегося времени до подачи звукового сигнала или 0 (в младшем разряде), если время в таймере не было установлено. Требуемую выдержку времени (в пределах 1 . 99 мин) вводят нажатием на кнопку SB2 (не отпуская SB1). При этом показания индикатора начинают автоматически увеличиваться с частотой 2 Гц. По достижении нужного значения кнопки отпускают. Возврат к показаниям температуры происходит через 1 с после отпускания кнопки SB1. По окончании заданного времени устройство в течение 10 с подает прерывистый звуковой сигнал частотой 1500 Гц.

В табл. 2 приведены коды «прошивки» МК, наделяющей описываемый прибор функцией управления термостатом, поддерживающим заданную температуру в контролируемой среде с точностью ±1 °С.

Просмотр и установка температуры (в интервале -54. +124 °С) осуществляются, как и в предыдущем случае, с помощью кнопок SB1 и SB2. Заданное значение температуры сохраняется в энергонезависимой памяти данных МК и загружается из нее при каждом последующем включении устройства в сеть.

При работе устройства с термостатом сигнал для управления нагревателем или компрессором холодильника снимается с выхода RA3, при этом вместо каскада на транзисторе VT1 устанавливают оптосимисторное реле, управляющее питанием исполнительного устройства или контактора, который, в свою очередь, подключает нагреватель или компрессор к электросети. Схема возможного варианта такого реле показана на рис. 2.

Приведенная в табл. 2 «прошивка» МК рассчитана на управление нагревательным элементом. К примеру, если заданная температура в термостате равна +30 °С, то на выходе RA3 МК появится сигнал лог. 1 (соответствует включению нагревателя) при понижении температуры контролируемой среды ниже +29 °С, но как только температура поднимется до +31 °С, нагреватель будет отключен. Таким образом, гистерезис между включением и выключением нагревателя составляет 2 °С. За его величину «отвечает» первый подчеркнутый байт (02) в табл. 2: если его заменить на 01, гистерезис уменьшится до 1 °С, а если на 03, увеличится до 3 °С и т. д. Чем меньше гистерезис, тем точнее будет поддерживаться заданная температура в контролируемой среде, но чаще будут повторяться циклы включения-выключения исполнительного устройства, и наоборот.

При управлении компрессором холодильника сигнал лог. 1 на выходе RA3, включающий систему охлаждения, должен появляться, если температура превысит заданный предел, и сменяться уровнем лог. 0, как только температура опустится ниже указанного предела, опять же с учетом гистерезиса, заданного значением первого подчеркнутого байта в табл. 2. Для реализации этого режима работы подчеркнутые 2, 3 и 4-й байты таблицы нужно заменить соответственно на «19», «15» и «11».

Исходные тексты программ размещены на ftp-сервере редакции по адресу ftp://ftp.radio.ru/pub/2003/10/termotimer . При программировании МК необходимо указать: тип генератора — HS, таймеры WDT и PWRT — включены.

Все детали термометра монтируют на печатной плате из двусторонне фольгированного стеклотекстолита (рис. 3).

Плата рассчитана на установку резисторов МЛТ, конденсаторов КД (С1, С2), К73-17В с номинальным напряжением 400 В (С3), КМ( С7) и К50-35 (остальные). Для уменьшения габаритов устройства детали устанавливают на обеих сторонах платы (там, где указаны их позиционные обозначения). В отверстия контактных площадок, помеченных на чертеже рядом стоящей точкой, при монтаже впаивают проволочные перемычки (их функцию выполняет также вывод конденсатора С7). Трехразрядный светодиодный индикатор HG1 собран из трех одноразрядных LSD3212-20 (зеленого цвета свечения) и может быть заменен любым другим с потребляемым током не более 20 мА на элемент (сегмент). Перед установкой на место выводы 12 индикаторов обрезают в непосредственной близости от корпуса.

Интегральный стабилизатор 78L05 (DA1) заменим любым другим с напряжением стабилизации +5 В. Звуковой капсюль-излучатель НА1 — любой малогабаритный с обмоткой сопротивлением 8. 25 Ом (автор использовал электромагнитный излучатель НС0903А).

Читайте также:  Трафарет для вырезания из бумаги шаблоны распечатать

Если предполагается использовать термометр в жестких климатических условиях, оксидные конденсаторы С5 и С6 следует выбрать с расширенным температурным диапазоном (с маркировкой на корпусе «+105°С» или выше), а МК PIC16F84A — исполнения Е/Р, обозначающего, что данная микросхема может работать при температуре от -40 до +125 °С. Смонтированную плату термометра в этом случае помещают в герметичный пластмассовый корпус и заливают герметиком (например, эпоксидной смолой). Отверстия для кнопок с внутренней стороны заклеивают куском тонкой резины, после чего с обеих сторон получившейся резиновой мембраны, над кнопками SB1 и SB2, наклеивают пластмассовые кружки диаметром, несколько меньшим диаметра отверстий в корпусе. Таким образом обеспечивается полная изоляция элементов устройства от внешней среды. При использовании устройства в обычных условиях герметизацию можно не делать.

Размещать датчик температуры внутри корпуса термометра нельзя, так как это приведет к увеличению погрешности измерений (из-за нагрева элементов) и инерционности показаний термометра при изменении температуры окружающей среды. Одно из конструктивных решений — размещение микросхемы датчика внутри стеклянной ампулы от лекарств подходящего размера. Места выхода гибкого кабеля из ампулы и из корпуса термометра тщательно заливают герметиком. Длина трехжильного кабеля может быть от нескольких сантиметров до десятков метров.

Собранное из исправных деталей и без ошибок в монтаже устройство в налаживании не нуждается.

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

Схема термостата:

Устройство сделано на базе микроконтроллера ATmega8. Индикатор применен символьный двухстрочный 1602 компании Winstar (или аналог), температурный датчик DS18B20. Этот термометр–терморегулятор позволяет измерять и поддерживать температуру от -55 °C до +125 °C, с точностью 0.1 °C. Изначально он разрабатывался для управления инкубатором, но после небольшого изменения программы микроконтроллера, диапазон поддерживаемых температур был существенно расширен.

В обычном режиме, на экране индикатора отображается текущая температура, которая обновляется раз в секунду. Длительное, непрерывное нажатие на кнопку SB2 (3 секунды) переведет устройство в режим настроек, в котором можно установить новое значение поддерживаемой температуры. В этом режиме, кнопка SB1 увеличивает значение поддерживаемой температуры, а SB2 – уменьшает. Длительное нажатие на одну из этих кнопок, приведет к быстрому изменению значения температуры. Запись нового значения поддерживаемой температуры произойдет автоматически по истечению 5 секунд, если ни одна кнопка не нажималась.

Нажатие на кнопку SB1, отобразит поддерживаемую терморегулятором температуру в нижней строке индикатора. Температура отображается все то время пока нажата и удерживается кнопка, сразу после отпускания кнопки информация с экрана исчезает.

Терморегулятор может работать как на нагревание (например, в инкубаторе), так и на охлаждение (скажем, в холодильнике). Поскольку изначально устройство разрабатывалось для поддержания температуры в инкубаторе и надежность была прежде всего, то в него была добавлена функция звукового оповещения неисправности или отсутствия (скажем, обрыва провода) датчика температуры. Если несколько раз подряд не удастся прочитать данные из датчика DS18B20, то из динамика раздастся тревожный сигнал. Этот же динамик используется для озвучивания кнопок.

Видео работы:

Микроконтроллер работает от внутреннего задающего генератора на 4 мГц. В устройстве используются один датчик, который подключен к порту PC2 микроконтроллера..Печатная плата не разрабатывалась, на фотографиях использована макетная плата которая описывалась в статье.

21.01.2012 5 комментариев

Автор: C@at, http://c2.at.ua
Опубликовано 19.01.2012.
Создано при помощи КотоРед.

Позволяет производить программируемое автоматическое управление устройствами с учетом суточного реального времени по таймеру, а имеющаяся функция термостата позволит управлять устройствами и по температуре.

Такое устройство на сегодняшний день будет актуально для экономии электроэнергии освещения, оптимизации работы наружного освещения. Поддержание установленного температурного режима в жилом помещении или определенного микроклимата в определенном диапазоне температуры. Да и вообще, для разных устройств и приборов, которые нужно включать и выключать в одно и то же время регулярно каждые сутки, на протяжении многих недель, месяцев. Таким образом, происходит экономия и материальных ресурсов.

Цифровое устройство представляет собой микропроцессорное программируемое устройство, обладающее следующими особенностями:

Распространенный микроконтроллер ATmega8.

Три независимых исполнительных канала. (Два канала таймеры, один канал термостат)

Независимые временные интервалы таймеров для каждого канала.

Каждый канал таймера, имеет по три настраиваемых периода включения – выключения, для исполнительных устройств.

Режим работы таймера, суточный с 00:00. до 23:59.

Точность программируемых таймеров от 1 минуты. Общей сложностью для каждого канала, от 1 минуты до 24 часов.

Полное управление таймером с помощью 4-х кнопок.

Управление от внешнего датчика (Выносной фотодатчик.)

Читайте также:  Самые мощные шокеры в россии

Совместная или независимая работа каналов таймера и фотодатчика.

ЖК графический дисплей.

Индикация состояния каналов таймера на дисплей.

Функция общего сброса из пользовательского меню.

Термостат (DS18b20):

Диапазон измеряемой температуры -55°C +125°C

Точность показаний 0.1°C

Регулируемый (настраиваемый) диапазон температуры от +20°C до +30°C

Регулируемый (настраиваемый) гистерезис от 0 до 9,9°C

Управление от внешнего датчика (ВКЛ. – ВЫКЛ.)

Часы реального времени (DS1307):

Содержит в себе часы, календарь.

Точность установки, 1 сек.

Резерв хода часов с запасом хода до 10 лет при отсутствии внешнего питания.

Программная корректировка погрешности хода часов.

Принципиальная схема цифрового устройства управления:

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

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

В качестве датчика может использоваться фоторезистор или фототранзистор.

Выбор использования опции управления от внешнего датчика, производится по усмотрению пользователя из пользовательского меню, для каждого канала отдельно.

Эта опция, управления от внешнего датчика, предоставляет пользователю, использование этого устройства в различных вариантах комбинаций применения. Например: применение этого дополнительного управления, изначально предполагалось для использования в наружном освещении, но используя комбинации вход — таймер, термостат – выход, термостат – таймер, вход – термостат, выход – таймер, можно придумать в разных вариантах применение этого устройства.

Установка периодов включения

Отрезок времени установки активности диапазона на включение, с 00:00. до 23:59.

В связи с тем, чтобы не было промежутка невключения исполнительного устройства с 23:59. до 00:00. , время таймер считает так, здесь на это нужно обратить внимание.

с 00:01 . до 00:01 . равно 1 минуте ,

или с 00:00 . до 00:01 . равно 2-м минутам .

Или с 00:00 . до 23:59 . Составляет ровно 24 часа .

Если нужно, что бы период был неактивен, время нужно выставлять так включение 00:01. выключение 00:00. При неактивности периода канала, разница должна быть, минус одна минута минимум.

Текущее состояние нагрузки индицируется в режиме основного экрана графическими символами 1 и 2, соответствующие номерам каналов таймера.

Состояние функции день — ночь отображается в режиме основного экрана, этакими графическими символами солнца и луны.

Все данные настроек, периодов включения — выключения, автоматически сохраняются в энергонезависимой памяти МК.

Если требуется, выберите пункт «сброс установленных настроек».

Нажатие кнопки +^ приведет все настройки значения каналов по умолчанию 00:01. 00:00. , если раннее была установлена корректировка секунд, также станет в ±0.

Все действия и параметры установок отображаются на ЖКИ. Все надписи меню на русском языке.

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

При разработке своей платы, придерживайтесь рекомендации монтажа от разработчика микросхемы DS1307.

Вариант исполнения этого экрана в данном варианте и в SL.

Использование функции корректировки секунд.

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

В котором выбираем, плюс или минус нужное количество секунд

ВНИМАНИЕ корректировка секунд будет производиться один раз в 00:01.30 , один раз каждые 10 дней. (Так как минимальная коррекция 1 сек в день это очень грубая подстройка, а так при периоде коррекции в 10 дней, есть возможность проводить коррекцию, минимально от ±0.1 сек.)

FUSE: для работы МК, выставляются на тактовую частоту 4 МГц. МК тактируется от внутреннего RS осциллятора.

Комплектующие: ЖКИ 16х2 на базе контроллера HD44780 или KS0006, МК ATmega8 с любой буквой, в DIP исполнении, можно применить и в корпусе TQFP. Популярная специализированная часовая микросхема DS1307, ведет подсчет реального времени в секундах, минуты, часы, дни, месяц и год вплоть до 2100 г. Автономное питание микросхемы DS1307, от одной 3-х вольтовой батарейки, способно поддерживать микросхему DS1307 в рабочем состоянии, в течение 10 лет. Обвязка микросхемы DS1307 минимальная: кварц на 32768 Гц и батарейка на 3V (рекомендуется параллельно батарейке ставить танталовый конденсатор).

Цифровой датчик температуры DS18b20.

Реле для исполнительных устройств на 12V.

Печатная плата.

Работу схемы можно протестировать в proteus»е:

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

Список устройств, на опыте которых созданна эта статья:

Ссылка на основную публикацию
Adblock detector