На главную           Статьи              Ссылки                Схемы                Форум               Все новости    


 

Регуляторы температуры - термостаты




Терморегулятор на микроконтроллере PIC12F629 и датчике температуры DS18B20  для управления вентилятором охлаждения

Содержание:

-Принципиальная электрическая схема
-Принцип работы схемы и программы регулятора температуры
-Программирование микроконтроллера PIC12F629 и корректирующая константа встроенного генератора
-Схема управления вентилятором охлаждения с индикацией диапазонов температуры
-Конвертер уставок температуры в формат датчика DS18B20
-Терморегулятор на микроконтроллере PIC12F629 и датчике температуры DS18B20  для управления нагревателем
-Дискретность (минимальный шаг) уставок терморегулятора
-Варианты применения схемы  терморегулятора
Терморегулятор на микроконтроллере PIC12F683
--Терморегулятор для холодильника
--Датчик управления охлаждающим вентилятором радиатора автомобиля
--Автомат управления циркуляционным насосом отопительного котла
--Автомат управления циркуляционным насосом солнечных тепловых панелей
--Терморегулятор для инкубатора
--Термостабилизатор для кварцевого резонатора источника образцовой частоты
--Терморегулятор для погреба или яшика с овощами
--Терморегулятор омшаника для зимовки пчёл
--Терморегулятор для водонагревателя
--Терморегулятор для аквариума
Прошивки


Принципиальная электрическая схема

Схема регулятора предельно проста и содержит всего десять деталей:
терморегулятор для управления охлаждающим вентилятором

Принцип работы схемы и программы регулятора температуры

В программе выставлены два порога температуры - нижний порог(Tn) и верхний порог(Tv).
При выключенном вентиляторе
Пока температура ниже верхнего порога Tv регулятора, на выходе микроконтроллера GP1 поддерживается уровень логического нуля, то есть выход обнулён, транзистор VT1 закрыт, так как отсутствует базовый ток. При достижении температуры верхнего порога на выходе GP1 микроконтроллера выставляется логическая единица. Транзистор открывается, реле соответственно включается и включает вентилятор охлаждения.

При включенном вентиляторе
Замер температуры происходит один раз в секунду, и при понижении температуры ниже верхнего уровня Tv вентилятор продолжает работать. Реле включено и выключится только тогда, когда температура достигнет нижнего порога Tn. Соответственно при достижении температурой нижнего порога выход микроконтроллера 
GP1 обнуляется, транзистор закрывается и реле отключает охлаждающий вентилятор.

Объект охлаждён, и всё повторяется до тех пор, пока присутствует напряжение питания.

Более наглядно процесс можно увидеть на графике:
график работы регулятора температуры

Регулятор температуры с зоной нечувствительности имеет некоторую инерционность и температура выходит за пределы уставок на величину, определяемую мощностями нагрева и охлаждения, а так-же общей теплоёмкостью и теплопроводностью регулируемого объёма.

Программирование микроконтроллера PIC12F629
и корректирующая константа встроенного генератора


Микроконтроллер PIC12F629 имеет встроенный источник тактовой частоты, работающий на частоте 4 мегагерца. Этот встроенный генератор калибруется на заводе и в памяти программ новых микроконтроллеров записана калибровочная константа. Записана она по адресу 0x3FF и выглядит эта константа в памяти программ вот таким образом:
корректирующая константа PIC12F629
При программираммировании микроконтроллера с помощью простых программаторов типа IcProg PonyProg присутствует вероятность стереть ячеку памяти с записанной константой. Затереть эту ячейку случайно можно и фирменным PicKit2 и такие случаи бывали при случайной остановке процесса прошивки.
Если эта константа окажется стёрта, то программы, расчитанные на работу с встроенным генератором PIC12F629 просто отказываются работать. Выход прост.

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

Схема подключения программатора PicKit2 к микроконтроллеру PIC12F629 показана на рисунке:
Подключение PicKit2

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


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

- больше
       больше верхней уставки Tv
- норма
          между уставками Tn и Tv
- меньше
      меньше нижней уставки Tn

терморегулятор для вентилятора с индикацией диапазонов температуры

Индикация температурных диапазонов работает  так:
Когда температура, измеренная датчиком превысит верхнюю уставку, включается светодиод "больше" красного цвета. Зелёный и синий светодиоды при этом погашены

Температура, измеренная датчиком находится в диапазоне от Tn до Tv. Включен зелёный светодиод, а красный и синий выключены

Температура меньше нижней уставки Tn. Включен синий светодиод, зелёный и красный выключены.

В этом варианте программы так-же реализована проверка подключения датчика и проверка 
корректности контрольной суммы считанной RAM датчика DS18B20.

При обрыве/отсутствии датчика оключается нагрузка и синий индикатор мигает с частотой два герца.
При ошибке контрольной суммы оключается нагрузка и мигает красный индикатор с частотой два герца.

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

Небольшое видео работы устройства, смонтированного на макетной плате (снято на мобильный)  2 мегабайта


Конвертер уставок температуры в формат
датчика DS18B20


Следующим логическим шагом по усовершенствованию конструкции этого варианта термостата является возможность задать верхнюю Tv и нижнюю Tn уставки с точностью до долей градуса. Максимальная разрешающая способность датчика DS18B20 составляет 0,0625  градуса цельсия. Температура выдаётся датчиком в виде двух байтов. Более наглядно представление о формате этих двух байтов можно получить, взглянув на таблицу отношения температуры и данных, взятую из даташита на DS18B20.
Таблица отношений температура/данные для DS18B20

Для облегчения работы с заданием  уставок была написана программа - конвертер значений температур в формат данных датчика DS18B20. Результаты работы конвертера выглядят так:
image/conv_0.jpg image/conv_1.jpg image/conv_2.jpg

Скачать программу конвертера температуры в формат данных датчика DS18B20 можно по ссылке:   Converter_DS18B20.rar

Уставки Tn и Tv задаются для данного варианта термостабилизатора в EEPROM и занимают четыре ячейки. Первые два байта EEPROM - младший и старший байты нижней уставки регулятора Tn. Затем два байта  - младший и старший байты верхней уставки Tv. Для температуры уставок 25 и 27 градусов в EEPROM эти ячейки выглядят вот так :
Уставки температуры в EEPROM микроконтроллера PIC12F629
Как можно видеть на рисунке, байты переставлены местами, то есть сначала стоит младший байт, потом старший байт уставки температуры. Первоначально в HEX виде значенние температуры 25 градусов равно 0x0190, а для 27 градусов 0x01B0.  Изменить эти ячейки можно на любые необхдимые значения, во всём диапазоне температур, которые поддерживаются датчиком DS18B20. Поддерживаемый диапазон от -55 до +128 градусов цельсия.

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

Терморегулятор на микроконтроллере PIC12F629 и датчике температуры DS18B20  для управления нагревателем

При использовании регулятора температуры для управления нагревателем меняется логика работы программы терморегулятора с верхней Tv и нижней Tn уставками температуры, схема же остаётся точно такой-же. Единственное отличие схемы в том, что реле управляет включением нагревательного элемента, а не вентилятором охлаждения.

Изменяется график регулирования температуры:
график регулирования температуры с помощью нагревателя

Уставки так-же двухбайтные при необходимости изменяются в 4-х первых ячейках EEPROM. Первые два байта младший и старший байты нижнего порога температуры Tn, следующие два байта младший и старший байты верхнего порога температуры Tv.


Дискретность (минимальный шаг)
уставок терморегулятора

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

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

Терморегулятор на микроконтроллере PIC12F683

Используя ту-же самую схему, в терморегуляторе возможно применить микроконтроллер PIC12F683.  В микроконтроллере PIC12F683 отсутствует корректирующая константа в последней ячейке памяти программ, что представляет собой явный плюс. Константы нет, значит и при прошивке нет никакого риска повредить константу. Этот микроконтроллер гораздо проще при прошивке. Программа незначительно изменена, что не коснулось алгоритма. Устройство будет работать точно также, как и терморегулятор на PIC12F629. Уставки в начальных 4-х ячейках EEPROM, в соответствии с ними будет поддерживаться необходимая температура. Здесь так-же два варианта программ, для охлаждения и для нагрева.



Варианты применения схемы
 терморегулятора

Кроме управления вентилятором охлаждения радиоаппаратуры, возможно ещё несколько вариантов применения схемы терморегулятора.

Терморегулятор для холодильника

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

Датчик управления охлаждающим вентилятором
радиатора автомобиля


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

Автомат управления циркуляционным насосом
отопительного котла


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

Автомат управления циркуляционным насосом
солнечных тепловых панелей

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

Терморегулятор для инкубатора

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

Термостабилизатор для кварцевого резонатора
источника образцовой частоты


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

Терморегулятор для погреба или яшика с овощами

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

Терморегулятор омшаника для зимовки пчёл

Содержание пчёл в ульях, которые переносятся на зимовку в омшаник ставит задачу поддержания в омшанике нужной температуры. Такая задача легко решается применением схемы термостата.

Терморегулятор для водонагревателя

Подогрев воды до нужной температуры, например до 60 градусов цельсия, для бытовых целей. Это очень распространённый вариант для применения подобной схемы, управляющей нагревательным элементом.

Терморегулятор для аквариума

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


Прошивки

PIC12F629

ohl_p12f629_08.hex - управление охлаждением
Терморегулятор с зоной нечуствительности и двумя двухбайтными уставками в 0...3-й ячейках EEPROM. Индикация меньше/норма/больше диапазонов температуры. Проверка наличия датчика DS18B20 и проверка CRC при считывании RAM датчика. Сигнализация ошибок. WDT таймер задействован.

nag_p12f629_00.hex - управление нагревом
Терморегулятор с зоной нечуствительности и двумя двухбайтными уставками в 0...3-й ячейках EEPROM. Индикация меньше/норма/больше диапазонов температуры. Проверка наличия датчика DS18B20 и проверка CRC при считывании RAM датчика. Сигнализация ошибок.
WDT таймер задействован.

======================================================================

PIC12F683

ohl_p12f683_0.hex - управление охлаждением
Терморегулятор с зоной нечуствительности и двумя двухбайтными уставками в 0...3-й ячейках EEPROM. Индикация меньше/норма/больше диапазонов температуры. Проверка наличия датчика DS18B20 и проверка CRC при считывании RAM датчика. Сигнализация ошибок.
WDT таймер задействован.

nag_p12f683_0.hex - управление нагревом
Терморегулятор с зоной нечуствительности и двумя двухбайтными уставками в 0...3-й ячейках EEPROM. Индикация меньше/норма/больше диапазонов температуры. Проверка наличия датчика DS18B20 и проверка CRC при считывании RAM датчика. Сигнализация ошибок.
WDT таймер задействован.

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

Автор конструкции
Виталий Антонов
Челябинск
Email указан на схеме