Схема термостата на микроконтроллере

Схема термостата на микроконтроллере

Терморегулятор на микроконтроллере PIC16F628 с датчиком температуры DS1820

Особенность конструкции: Индикация на ЖК — дисплей текущей температуры. Возможность управления нагревательным элементом или другим мощным внешним прибором. Возможность работы в режиме термостата.

Сердцем схемы является микроконтроллер PIC16F628, поддерживающий постоянный обмен информацией с цифровым термометром DS1820 по протоколу 1-Wire, а также обрабатывает и анализирует эти данные и выводит ее на ЖК дисплей. В качестве дисплея используется модуль 16х2 MT16S2H фирмы «МЭЛТ»

Блок питания можно собрать самостоятельно на стабилизированное напряжение на 5 вольт. Чтоб узнать как запрограммировать датчик температуры DS1820 кликните мышкой на картинку выше с надписью терморегулятор схемы

Терморегулятор на микроконтроллере PIC16f84 для теплого пола с датчиком температуры DS1621

Устройство работает по интерфейсу l2C. В момент подачи питания, микроконтроллер сначала инициализирует внутренние регистры температурного датчика, а затем проводит его настройку.

Как только инициализация заканчивается, микроконтроллер считывает из энергонезависимой памяти заданные уровни температуры. Затем терморегулятор осуществляет циклический опрос температурного датчика и выводит значение температуры на светодиодный индикатор. Для отображения десятых долей температуры, десятичная точка у индикатора HG2 соединена через сопротивление R14 на общий провод. В конце сравнения заданного и фактического значений температуры программа формирует низкий или высокий уровень сигнала на второй выход RА3 микроконтроллера PIC16f84. Это сигнал и является управляющим для включения терморегулятора.

Требуемую температуру в память микроконтроллера PIC16F84A можно вносить с шагом в пол градуса Цельсия. Выбор нужного значения температуры осуществляется тумблерами SB1 и SB2, а ее запись в энергонезависимую память осуществляется нажатием и удержанием более 1 секунды кнопки SB3.

Температурный датчик DS1621 располагаем в подходящего по диаметру трубки и вблизи с нагревательным кабелем теплых полов. Соединение датчика и терморегулятора осуществляем 4-х проводным кабелем длинной до двух метров. Прошивку к микроконтроллеру скачивайте по ссылке чуть выше, а о программирование PIC микроконтроллеров читаем тут.

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

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

Величину температурного гистерезиса можно задавать в интервале от 1 до 10 градусов. Температурный максимум, поддерживаемый регулятором, около 70 градусов. При первом включении схемы в энергонезависимую память МК записывается гистерезис включения и выключения термостата — 5 градусов и поддерживаемая температура -40 градусов. После подачи питания должны загореться все сегменты цифрового индикатора кроме точек. Для задания температуры используются кнопки SB1 и SB2. SB1 — уменьшение, SB2 — увеличение. Гистерезис задается этими же кнопками, но при нажатой SB3. Функциональность кнопок SB1 и SB2 в данном случае такая же. Если задать температуру в сорок градусов, а гистерезис десять, то при сорока градусах будут срабатывать термонагреватели, а при 40+10 = 50 они отключатся.

Номиналы сопротивлений резисторов R8,R9,R10 могут лежать в интервале от 4,7кОм до 10кОм. А вот номиналы сопротивлений R5 и R6 — критичны и должны быть такими, чтобы общий ток, идущий через HL2 и оптрон U1, был не выше 25 миллиампер. Можно вообще HL2 выкинуть из схемы, достаточно и лампы HL1, и тем самым снизить нагрузку на выходе МК.

Блок питания лучше взять трансформаторный. , т.к он более устойчив к сетевым помехам, которые иногда приводят к зависанию прошивки микроконтроллера. Напряжение на входе стабилизатора DA1 должно обеспечивать необходимый уровенб для питания микроконтроллера. Прошивку, рисунок печатной платы и более качественный вариант принципиальной схемы можно забрать по ссылке выше.

Основа схемы — уже знакомый микроконтроллер PIC16F628A. В роли датчика температуры применен DS18B20, способный правильно функционировать до +125 градусов. Показания установленной и реальной температуры индицируется четырехразрядным семисегментным светодиодным индикатором с общим анодом.

Задание нужной температуры осуществляется при помощи двух кнопок SB1 и SB2. Коммутация нагрузки происходит с помощью оптотиристоров ТО125-12,5-6. При помощи сопротивления R1 задается ток протекающий через светодиоды оптронов, номиналом около 50мА. Оптотиристоры необходимо разместить на радиаторах, согнутых из полоски алюминия площадью 100см 2 . В роли сетевого трансформатора можно использовать любой, обеспечивающий на выходе вторички напряжение 6В при токе нагрузки — от 100 мА. Прошивку к МК и чертеж печатной платы забираем по ссылке выше

Основой схемы является, уже знакомый нам микроконтроллер PIC16F628A. Применение ЖК дисплея позволило освободить несколько выводов МК, что существенно упростило согласование по времени считывания данных с датчика температуры и влажности и вывода результирующей информации на экран. В этой схеме используется универсальный датчик температуры и влажности DHT22.

Кроме того, конструкция состоит из девяти резисторов, оного конденсатора и пяти управляющих кнопок.

Максимальная температура, которую можно задать в термостате, 42 градуса. Минимальная — 25,7. Интервал изменения петли гистерезиса составляет от 0,1 до 0,9 градуса Цельсия. Влажность можно регулировать в диапазоне от 0,1% до 99,9%. При первом включении МК, в его энергонезависимую память будут сохранены следующие величины: температура — 37,5°C, гистерезис — 0,5°С, влажность — 50%. Далее, в память, будут внесены уже необходимые вам параметры. Скачать прошивку и более качественный вариант схемы можно по ссылке выше.

простой, универсальный, с гистерезисом

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

Характеристики
1 Диапазон измеряемых температур -55°…+125°C
2 Точность измерения 1°C
3 Гистерезис -40°…+125°C
4 Индикация Динамическая
5 Разрядов индикатора 3
Читайте также:  Фрезер redverg rd er180 отзывы

ОПИСАНИЕ ПРОЕКТА

Управление осуществляется 2-мя кнопками. Нажатием кнопки +1 активируется режим настройки температуры ВКЛЮЧЕНИЯ реле. Кратковременно выскакивает надпись On и далее мигают цифры установленной температуры включени. Кнопками +1 и -1 можно изменять это значение от -55°C до +125°C. После установки температуры нужно подождать несколько секунд, на дисплее кратковременно мигнут три тире (—), новые данные будут записаны в EEPROM и прибор перейдет в основной режим отображения температуры. Аналогично, нажав кнопку -1 на дисплее появится надпись OFF и начнет мигать значение температуры ОТКЛЮЧЕНИЯ реле. Точно так же после паузы в несколько секунд появятся три тире и произойдет сохранение в EEPROM температуры отключения реле.

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

Для включения режима калибровки нужно удерживая кнопку +1 подать питание. Так же этот режим автоматически включается при первом включении устройства, после прошивки микроконтроллера. В этом режиме сначала поочередно на несколько секунд будут отображаться цифры 123 то под общий АНОД, то под общий КАТОД. В момент когда цифры отображаются правильно нужно нажать любую кнопку, режим индикации будет запомнен. Далее на дислее будет мигать надпись или (-S-) или (-b-). Кнопками можно выбрать тип датчика, 18 S 20 или 18 B 20 — -S- и -b- соответственно. А не нажимая кнопки несколько секунд выбранный датчик будет запомнен и все настройки сохранятся в EEPROM. Термостат перейдет в основной режим работы.

В случае получения ошибочных данных с датчика на дисплее появляется надпись (Err) — ошибка. Ошибка появляется только в том случае, если ошибочные данные получены с датчика 3 раза подряд (защита от случайных сбоев). При ошибке функции термостата будут выключены, реле отключено.

Автор: Radioelectronika-Ru · Опубликовано 28.11.2017 · Обновлено 16.03.2018

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

Технические характеристики в режиме терморегулятора
Интервал регулируемой температуры, °С ………………………………….от -55 до +125
Разрешающая способность при измерении и регулировании, °С:
в интервале температуры -9,9…-99,9 °С …………………………………..0,1
в интервале температуры -55…-10 °С и +100…+125 °С ……………….1
Погрешность измерения, °С, не более:
в интервале температуры -10…+85 °С ……………………………………..±1
в интервале температуры -55…-10 °С и +85…+125 °С …………………±2
Интервал установки гистерезиса, °С ………………………………………..± 0…50
Верхняя граница установки интервала регулирования, °С …………….-55…+125
Нижняя граница установки интервала регулирования, °С …………….-55…+125
Интервал корректировки показаний термометра, °С……………………..±2

Терморегулятор работает как в режиме нагрева, так и охлаждения. Дополнительно можно установить продолжительность поддержания температуры в интервале 1—999 мин или остановку работы терморегулятора на тот же промежуток времени. В процессе работы подсчитывается суммарная продолжительность подключения нагрузки к сети. Устройство предназначено для работы совместно с датчиком температуры DS18B20 и автоматически определяет его ID-код.

Технические характеристики в режиме таймера
Интервалы установки времени
секунд……………..1…999
минут………….1…999
часов ………………1…999
Направления отсчёта времени …………………..прямое или обратное

Таймер обеспечивает задержку как включения, так и отключения нагрузки.
Схема таймера-терморегулятора показана на рис. 1. Все основные функции возложены на микроконтроллер DD1, управление режимами и ввод данных осуществляют с помощью кнопок SB1—SB3, а информация выводится на трёхразрядный светодиодный индикатор HG1. Питание осуществляется от сети, которую подключают к зажимам 1 и 2 колодки ХТ1. На трансформаторе Т1, диодном мосте VD1, стабилизаторе DA1 и сглаживающих конденсаторах С2 и С4 собран узел питания. Резистор R1 повышает надёжность работы устройства при повышенном сетевом напряжении. Но при желании его можно исключить, установив на плате взамен него проволочную перемычку.

Включение или отключение питания нагрузки осуществляется с помощью реле К1, контакты которого К1.1 нормально разомкнуты и подсоединены к зажимам 3 и 4 колодки ХТ1. Датчик температуры DS18B20 подключают к зажимам 5 и 6. Применена двухпроводная схема подключения датчика: к зажиму 6 присоединён вывод 2, к зажиму 5 — выводы 1 и 3. Для вывода информации на индикатор HG1 использована динамическая индикация с периодом обновления символов около 20 мс.

Управление работой и установку параметров осуществляют с помощью трёх кнопок SB1 “◄” (уменьшение), SB2 “►” (увеличение) и SB3 “∟” (ввод). В зависимости от предварительной установки устройство может выполнять функции универсального терморегулятора или быть в роли таймера. Для выбора функционального назначения необходимо нажать на кнопку SB3 и, удерживая её, подать напряжение питания. На индикаторе HG1 появится номер текущей установки (рис. 2). Кнопками SB1 и SB2 устанавливают режим работы: 1 — универсальный терморегулятор (задан по умолчанию), 2 — таймер. Для подтверждения следует нажать на кнопку SB3. Изменения вступят в силу после следующего включения.

Читайте также:  Каталог декоративных растений с фото

При работе устройства в качестве терморегулятора датчик температуры располагают в месте, где необходимо поддерживать заданную температуру. После подключения прибора к сети на индикаторе “пробегает” тестовая надпись HELLO — терморегулятор готов к работе. В рабочем режиме на индикаторе HG1 постоянно отображается текущее значение температуры. О том, что нагрузка в данный момент включена, свидетельствует мигающая точка в младшем разряде.

Установку температуры производят кнопками SB1 и SB2, по умолчанию она составляет 30 °С. В момент нажатия на любую из этих кнопок на индикаторе HG1 появляется мигающее значение устанавливаемой температуры, а по истечении 5 с после последнего нажатия терморегулятор возвращается в рабочий режим. Все введённые данные сохраняются в энергонезависимой памяти микроконтроллера. При нажатии и удержании кнопок SB1 и SB2 выбранный параметр изменяется быстрее. В зависимости от продолжительности нажатия последовательно переключаются три его скорости изменения.

Для установки других настроек терморегулятора необходимо войти в меню. Для этого следует нажать на кнопку SB3. Изменение настроек производят в соответствии с рис. 3. Через 5 с после последнего нажатия любой кнопки устройство переходит в рабочий режим, а все настройки сохраняются в энергонезависимой памяти. Ниже приведено описание доступных параметров.

ГГР — гистерезис. Параметр, в котором задаётся разность температур включения и отключения нагрузки. Установленное число суммируется с заданной установкой температуры для включения и вычитается для выключения. Если, например, задана температура 30,0 °С, а ГГР — 4,5, то в режиме нагревания отключение нагрузки произойдёт при температуре 30,0 + 4,5 = 34,5 °С, а включение — при 30,0 – 4,5 = 25,5 °С. Если терморегулятор работает в режиме охлаждения, отключение произойдёт при температуре 25,5 °С, а включение — при 34,5 °С. Если установить ГГР равным 0, на индикаторе отобразится надпись ГР и прибор будет работать как обычный термометр, на индикаторе отобразится текущая температура, а нагрузка будет всё время отключена. По умолчанию установлено значение ГГР, равное 3,0.

ВПР — верхний предел температуры. Этот параметр определяет максимально возможное значение устанавливаемой температуры. В случае превышения этого предела, независимо от других установок, нагрузка будет отключена. По умолчанию в ВПР задано значение 80,0.
НПР — нижний предел температуры. Этот параметр определяет минимально возможное значение устанавливаемой температуры. В случае снижения температуры ниже НПР, независимо от других настроек, нагрузка также будет отключена. Значение НПР всегда меньше или равно ВПР. По умолчанию в НПР задано значение 10,0.
ВРВ — продолжительность времени включения (в минутах). Этот параметр задаёт временной интервал, в течение которого поддерживается заданная температура. По его окончании нагрузка будет отключена. Признак истечения установленного временного интервала — постоянно светящаяся точка в младшем разряде индикатора. Повторный запуск таймера производят нажатием на кнопку SB3. Если ВРВ установлено равным 0, на индикатор выводится изображение “—“, а таймер в работе терморегулятора не участвует. По умолчанию таймер отключён.

ВРО — продолжительность времени отключения. Параметр задаёт временной интервал (в минутах), в течение которого устройство находится в выключенном состоянии, предназначен для использования совместно с параметром ВРВ. По окончании установленного интервала времени устройство возвращается к функции поддержания температуры. Если, например, установить значение ВРВ 90, а ВРО 60, терморегулятор будет циклически поддерживать температуру в течение 90 мин, а затем отключаться на 60 мин и снова включаться на 90 мин и т. д. Если ВРО равно 0, на индикаторе выводится изображение “–“, а таймер в работе терморегулятора не участвует. По умолчанию ВРО имеет нулевое значение (таймер отключён).
ПАР — параметры работы. Значение ПАР определяет режим работы терморегулятора: нагревание или охлаждение. При работе совместно с нагревателем в ПАР необходимо установить НА, при работе совместно с охладителем — ОС. По умолчанию в ПАР задано значение НА (работа с нагревателем).

ПОП — поправка показаний. Этот параметр позволяет проводить корректировку показаний термометра и в случае необходимости добиться (по образцовому термометру) погрешности измерения менее 0,1 °С. Значение ПОП добавляется к текущим показаниям температуры. Обычно в корректировке показаний нет необходимости, поскольку датчик температуры DS18B20 имеет заводскую калибровку и очень высокую точность измерения. По умолчанию ПОП имеет значение 0,0 (корректировка отсутствует).
РАБ — время работы нагревателя (или охладителя). В этом режиме выводится время (в часах), в течение которого нагрузка была включена. Это позволяет оценить расход электроэнергии. Например, если месячные показания РАБ равны 250, а мощность нагревательного элемента — 0,5 кВт, расход электроэнергии составляет 125кВт·ч.

НОГ — идентификационный номер (ID-код) датчика температуры. Выводится 64-разрядный идентификационный номер датчика DS18B20, представленный в шестнадцатеричном формате. Например, 28А2С86801000017. (последняя цифра отмечена десятичной точкой). Просмотр номера производится нажатием на кнопки SB1, SB2 и может понадобиться для определения, какой из датчиков подключён. Если связь с датчиком нарушена или по каким-либо причинам код считать не удалось, на индикатор будет выведено сообщение Err (ошибка).

Читайте также:  Как очистить картридж от краски

Устройство автоматически определяет наличие и исправность датчика температуры. При обрыве цепи или отсутствии датчика на индикаторе появится надпись HI, а при коротком замыкании или неправильном подключении — Lo. При любой неисправности нагрузка автоматически отключается. Провод, соединяющий датчик с устройством, должен иметь сечение не менее 0,5 мм 2 , а длину — не более 10 м. Информация считывается с датчика температуры с периодом 1 с и сравнивается с предыдущим значением. Если скорость роста температуры превышает 30 °С/с или скорость падения температуры превышает 20 °С/с, ситуация интерпретируется как аварийная и нагрузка отключается.

Для просмотра и изменения установок при работе в режиме таймера необходимо войти в меню. Для этого следует нажать на кнопку SB3. Установку проводят в соответствии с рис. 4 Через 5 с после последнего нажатия на любую кнопку устройство переходит в рабочий режим, а все настройки сохраняются в энергонезависимой памяти. После входа в меню появляется текущая установка таймера (индикатор мигает). Кнопками SB1 и SB2 устанавливают временной интервал в пределах 000…999 (по умолчанию задано 100). Если установить 000, таймер блокируется, а в рабочем режиме на индикаторе будет сообщение “—“.

После установки цифрового значения нажимают на кнопку SB3, и затем можно задать единицы измерения времени. Это могут быть секунды SEC (по умолчанию), минуты Ml или часы HOU.
Далее устанавливают режим работы таймера. При выборе ОН, по истечении установленного временного интервала, нагрузка будет подключена, выбор OFF означает, что нагрузка будет отключена. Выбор направления счёта таймера — обратный при выборе ОБС (задан по умолчанию) и прямой при выборе — ПРС. Во время работы таймера на индикаторе отображается время. Запуск таймера осуществляют нажатием на кнопку SB2. Если задан прямой счёт, показания изменяются от нуля до максимального значения, например, 0, 1, 2… и т. д., а если обратный — от максимального значения до нуля, например, 100, 99, 98… и т. д.

Остановку таймера производят кнопкой SB1. При повторном нажатии на неё он перейдёт в исходное состояние. Если выбрана установка на включение, по окончании установленного интервала нагрузка будет подключена и на индикаторе появится сообщение ОН, а если установка на выключение — OFF и нагрузка отключена. О текущем состоянии нагрузки можно судить по десятичной точке в младшем разряде индикатора. Она светит — нагрузка включена, погашена — отключена. В случае установки минут или часов точка каждую секунду кратковременно вспыхивает, если нагрузка отключена, и кратковременно гаснет, если включена.

Для повышения надёжности работы в устройстве применён ряд программных приёмов. В первую очередь, это касается работы с EEPROM микроконтроллера. Каждый параметр в энергонезависимой памяти продублирован в четырёх ячейках. Чтение и запись проводятся поблочно. После каждого чтения содержимое четырёх ячеек сравнивается между собой. Если в одной или двух из них оно отличается от остальных, единое значение всех ячеек блока восстанавливается по тем, в которых оно идентично.

Большинство деталей монтируют на двух печатных платах из фольгированного стеклотекстолита, чертежи которых показаны на рис. 5 и рис. 6. Применены постоянные резисторы для поверхностного монтажа РН1-12, остальные — МЛТ, С2-23. Оксидные конденсаторы — К50-35 или импортные, остальные — К10-17. Реле — JZC-22F3SC20DDC12V, кнопки — DTST-6. Трансформатор должен обеспечивать на выходе выпрямителя напряжение 12 В при токе до 150 мА ХТ1 — однорядный клеммник серии 305. Для программирования микроконтроллера предназначен файл modul_v2.hex.

Платы устанавливают в пластмассовый корпус рис. 7). Внешний вид собранного устройства показан на рис. 8. Резистор R2 был предназначен для защиты микроконтроллера в процессе отработки конструкции, но после изготовления нескольких экземпляров устройств он был исключён и взамен него на плате установлена проволочная перемычка.

В целях упрощения предусмотрена возможность исключения токоограничивающих резисторов R4—R11 в цепях управления сегментами индикатора HG1. В этом случае их заменяют отрезками провода, в микроконтроллер следует загрузить файл modul_v1.hex Чтобы исключить перегрузку по току индикатора и микроконтроллера, подача напряжения на каждый разряд индикатора осуществляется на 0,3 мс, поэтому работают они при номинальном среднем токе. Яркость свечения индикаторов с различным числом включённых элементов немного различается из-за неравномерного распределения тока и различного падения напряжения на выходных транзисторах портов микроконтроллера. Индикатор с общим катодом можно заменить на аналогичный, но с общим анодом. Для этого в начале программы modul_v1 .asm (modul_v2.asm) следует удалить строку tfdefine _COMMON_CATODE_ и заново откомпилировать программу.

При программировании устанавливают следующую конфигурацию микроконтроллера: BODLEVEL=1; BODEN = 0; SUT1 = 1; SUT0 = 1; CKSEL3 = 1; CKSEL2 = 1; CKSEL1 = 1; CKSEL0 = 1; RSTDISBL = 1; WDTON = 1; SPIEN = 0; СКОРТ = 0; EESAVE = 0; BOOTSZ1 = 1; BOOTSZ0 = 1; BOOTRST = 1.

И. КОТОВ, г. Красноармейск Донецкой обл., Украина
“Радио” №3 2012г.

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