Термостат своими руками на микроконтроллере
Терморегулятор на микроконтроллере схема
Терморегулятор на микроконтроллере 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%. Далее, в память, будут внесены уже необходимые вам параметры. Скачать прошивку и более качественный вариант схемы можно по ссылке выше.
Простой термостат – термометр с энкодером на микроконтроллере PIC16F628. Схема
В зимние месяцы, когда требуется обогрев помещений, особое значение приобретает контроль температуры. Для этой цели используются различные методы. Одним из них является электронный метод, основанный на использовании термостата. Это решение позволяет контролировать температуру и, в зависимости от условий, управлять нагревательными устройствами.
Термостат — это устройство, которое, как следует из его названия, поддерживает температуру на заданном уровне. При этом недостаточно задать только значение необходимой температуры, для правильной работы необходимо указать минимальную и максимальную температуру.
Контроллер термостата будет включать и выключать нагреватель в зависимости от того, находится ли фактическая температура в заданном диапазоне.
В данной статье термостат снабжен буквенно-цифровым дисплеем 16х1, информирующий о текущей и заданной температуре. Благодаря этому, помимо функции регулировки, устройство также играет роль электронного термометра.
Температура измеряется с использованием цифрового датчика DS18B20, работающего в диапазоне -55…+125°C. Однако отображаемый диапазон ограничен диапазоном от -55…+99,9°C, и в таком же диапазоне можно установить контролируемую термостатом температуру. Этот диапазон значительно превышает потребности пользователя, однако из-за функции термометра это может быть полезно.
Установленная температура поддерживается с точностью определяемой гистерезисом включения и выключения реле. Его величина влияет на частоту переключения реле.
Например, если предположить, что температура должна быть на уровне 25°С с точностью 0,1°С, то при снижении температуры на 0,1°С произойдет включение обогревателя, а при увеличение на 0,1°С отключение.
Поддержание температуры с максимальной точностью весьма желательно, однако слишком малая разница в температуре между включением и выключением реле вызовет частое его переключение.
Чтобы уменьшить частоту переключений необходимо увеличить гистерезис. Чем больше гистерезис, тем ниже точность поддерживаемой температуры.
Увеличив гистерезис в приведенном выше примере до 0,5°C, при поддержании температуры на уровне 25°C, переключение реле не будет происходить при температуре в диапазоне 24,5…25,5°C.
Значение гистерезиса необходимо подбирать в соответствии с поставленной задачей. В данном устройстве гистерезис может быть отрегулирован в диапазоне 0…5°C.
Для управления термостатом используется энкодер. Это решение позволяет легко и быстро изменять параметры. Это гораздо более дружелюбный способ, чем использование кнопок. Параметры сохраняются в энергонезависимой памяти, поэтому вам нет необходимости устанавливать их снова после сбоя питания.
Коммутационная схема — это реле с управляемой мощностью 16А. Это дает возможность управлять нагревателем мощностью до 3 кВт. Для обеспечения безопасности, коммутационная схема выполнена на отдельной плате. Благодаря этому панель управления термостатом может быть размещена в любом удобном месте.
Управляющим элементом термостата является микроконтроллер PIC16F628 от «Microchip», который работает от внешнего кварцевого резонатора с частотой 4 МГц. Для отображения установленной и измеренной температуры применен однострочный буквенно-цифровой дисплей с возможностью отображения 16 символов. Контраст дисплея настраивается потенциометром R5.
Параметры термостата выставляются с помощью энкодера (Sw1) со встроенной кнопкой. Сигналы данных подаются на порт RA, а от кнопки — на порт RB.
Как уже было сказано выше, в качестве датчика температуры используется микросхема DS18B20, которая измеряет температуру и передает информацию в 12-битном формате. Микроконтроллер считывает результат через интерфейс 1-Wire и после вычислений выводит на дисплей температуру с разрешением 0,1°C.
Сигнал, управляющий реле, через транзисторный ключ VT1 подается на реле.
Питание термометра осуществляется с помощью стабилизатора напряжения DA1 (78l05), который обеспечивает выходное напряжение 5 В. Конденсаторы С1…С4 сглаживаю входное и выходное напряжение. Диод VD1 (1N4007) защищает схему от переплюсовки входного источника питания.
Термостат собран на двух платах: одна для системы управления с микроконтроллером и дисплеем, вторая для коммутации.
Для питания схемы термостата необходим источник питания с выходным напряжением около 12 В и током не менее 100 мА. После включения на дисплее будет отображаться фактическая температура и значение температуры, которое поддерживается термостатом.
В термостате можно запрограммировать два параметра: желаемую температуру и точность (гистерезис). Эти параметры сохраняются в энергонезависимой памяти EEPROM.
Изменение контролируемой температуры осуществляется поворотом ручки энкодера. После первого поворота отображаемое значение начнет мигать, и теперь термостат будет работать с новым значением.
Однако мигающее значение температуры указывает на то, что изменения сделаны временно. В этом режиме термостат может работать и поддерживать новую температуру, но только до тех пор, пока питание не отключится.
Чтобы отменить изменения и вернуться к значению, хранящемуся в энергонезависимой памяти, кратко нажмите кнопку энкодера. Установленное значение перестает мигать. Когда питание снова будет включено, будет использовано значение из EEPROM. Для того чтобы записать в память новую температуру необходимо нажать и удерживая кнопку энкодера в течение примерно двух секунд.
Второй параметр — гистерезис. Чтобы войти в режим изменения гистерезиса, нажмите кнопку энкодера во время нормальной работы термостата. На дисплее отобразится текущее значение в формате Term = T ± 0,0°C (значение по умолчанию 0,0°C). Изменения делаются поворотом ручки энкодера. Как и при настройке температуры, после первого шага начинает мигать измененное значение. Чтобы отказаться от введенных изменений, кратко нажмите клавишу. Чтобы сохранить его нажмите кнопку примерно на две секунды.
Статус активации реле отображается индикацией точки между фактической и контролируемой температурой.
Скачать рисунок печатной платы и прошивку (78,3 KiB, скачано: 811)
Терморегулятор для холодильника на микроконтроллере ATMEGA8 и термодатчике DS18B20. Схема, плата, прошивка
↑ Немного истории
Моему холодильнику уже добрых 20 лет и за это время он успел сменить в себе два мотора и один термостат, побывал в двух мастерских и теперь это «чудовище Франкенштейна» совсем перестало выключаться.
По опыту скажу, что я очень не люблю такие термостаты, их механическая начинка довольно капризная. А ещё мастера мне попадались уникальные, они чинили одну часть холодильника, и ломали другую. Например, после ремонта у меня перестала включаться лампочка «в салоне» при открывании двери.
«Хочешь, чтобы было сделано хорошо? Сделай это сам!»
↑ Изучение холодильного вопроса и временное решение
Еда начинает портиться! Звать мастера, чтобы он провозился с холодильником пару недель (а у меня в городе такие мастера и есть) — не вариант, что делать? Надо периодически выдёргивать вилку из розетки, имитируя работу термостата! Меня хватило на один день этого мазохизма, поэтому мне нужно удобное решение и собрал я за вечер обычный микроконтроллерный таймер-реле включения/выключения буквально на подносе и это не шутка.
Работает! Его задача — тупо включать компрессор на 15 минут и выключать на 45. Питание взял от импульсника из сломанного DVD плеера, в нём удачно обнаружились два выхода 12 и 5 Вольт. Реле врезал в удлинитель и прижал всё колонками. Изящное временное решение вышло!
↑ Схема моего терморегулятора
Теперь есть «время на подумать» и поискать вдохновения в Интернете для разработки полноценного терморегулятора.
Что в итоге я выяснил:
• компрессор может работать часами, но не сутками, ему нужен отдых;
• после выключения компрессора, нужно минимум 5-10 минут перед повторным запуском.
В остальном, есть простор для творчества.
Тут всё просто. Есть реле RL1 на ток в 16А на каждую группу, управляющую компрессором. Ключ Q1 управляет этим реле, получая команды от микроконтроллера U1. МК тактируется от кварца в 4 МГц.
Кнопки управления всего две, это «PLUS» и «MINUS», подтянуты они к плюсу питания и зашунтированы ёмкостями С4 и С5, для избавления от дребезга контактов.
Используется цифровой термодатчик U1 ds18b20, работающий по однопроводному протоколу.
Вся индикация — на семисегментном LED индикаторе с общим анодом, работающим в динамическом режиме. Светодиод «WORK» это индикатор состояния компрессора, который показывает, включен он или нет.
Питание взял от готового импульсника, на выходе которого, снимается 12В на реле и 5В на всё остальное.
Осталось ознакомиться со схемой холодильника и приступить к разработке логики управления компрессором.
В итоге, клеммы с термостата SK будут отключены и перенаправлены на контакты моего реле.
↑ Пишем холодильную программу для МК
Тут не указана процедура опроса кнопки, т.к. она происходит постоянно на всех этапах работы программы. Во время периодического опроса датчика, а это каждые 3 секунды, происходит проверка исправности датчика температуры. В случае потери связи с датчиком, программа перейдёт в аварийный режим, когда вызывается подпрограмма таймера работы/отдыха компрессора. Для возврата в нормальный режим, необходимо будет исправить связь с датчиком температуры и выключить/включить устройство.
Данная подпрограмма является копией той, что работала на подносе в начале статьи, так что предыдущие труды прошли не зря.
Прошивка и исходники, как всегда, в подвале статьи! Что касается фьюзов, то они все сняты, кроме CKSEL1, т.е. микроконтроллер настроен на работу от внешнего кварца на 4 МГц.
↑ Индикация и настройки
Теперь поговорим об индикации. В устройстве заложены несколько параметров, которые можно настраивать:
1) температуру внутри — «t» (от 0 до 10 градусов, шаг 0,1 градус);
2) гистерезис заданной температуры — «G» (от 1,0 до 5,0 градусов, шаг 0,1 градус);
3) таймер отдыха компрессора — «h» (от 5 до 60 минут, шаг 1 минута);
4) таймер работы компрессора — «H» (от 10 до 600 минут, шаг 10 минут);
5) время работы компрессора в аварийном режиме — «on» (от 5 до 99 минут, шаг 1 минута);
6) время отдыха компрессора в аварийном режиме — «oF» (от 5 до 99 минут, шаг 1 минута).
Далее фотографии с реальными настройками.
Настройка температуры производится простым нажатием кнопок «PLUS» и «MINUS», при этом первоначальное нажатие покажет текущую заданную температуру, а повторное нажатие одной из двух кнопок, уже изменит её на 0,1 градус.
Если не трогать кнопки 2 секунды, настройки сохраняются и устройство покажет текущую температуру в камере холодильника.
Для проведения настроек других параметров, нужно нажать сразу две «PLUS» + «MINUS» кнопки и отпустить, а затем изменять значения необходимых параметров теми же кнопками «PLUS» и «MINUS».
Переход на следующий параметр в меню, происходит также нажатием сразу двух кнопок «PLUS» + «MINUS».
Если не трогать кнопки 2 секунды, все настройки сохраняются и индикация возвращается на показ температуры в камере холодильника.
Порядок переключаемых с помощью двух кнопок параметров соответствует порядку пунктов (2 → 3 → 4 → 5 → 6), перечисленному выше.
Применение параметров в программе в реальном времени происходит только в пунктах 1, 2, 5, 6. Параметры пунктов 3 и 4 применяются после событий старта/остановки компрессора.
При подаче питания на устройство на индикаторе высветится оставшиеся время отдыха компрессора. Это подстраховка. Мало ли, вдруг было отключение электричества, и компрессор до этого события работал, его же нельзя вот так сразу запускать. Нужна пауза минимум 5-10 минут, чтобы давление внутри стравилось, иначе пусковой ток будет слишком велик, и это может повредить мотор. В моём случае, он просто не запускался и гудел на пусковой обмотке, потребляя более 2 кВт!
По истечении таймера защиты индикация переключается на постоянное отображение температуры.
Гистерезис необходим для образования температурного «окна», т.е. если установлена температура +5°, а гистерезис равен 2°, то компрессор будет включаться при +7° и выключаться при +3°.
↑ Конструкция и детали цифрового термостата
В крышке холодильника была установлена новая заглушка, в месте, где должен быть световой индикатор в более дорогих моделях холодильников данной серии. Вот как раз и используем заготовленное заводом пространство.
Выпилил окошки и отверстия в заглушке. Хорошо, что у меня завалялся кусок лицевой затемняющей панели от спутникового тюнера!
Все эти кусочки пластика я посадил на термоклей. В итоге вышла довольно симпатичная лицевая панель.
Проводку от платы подключил к контактным клеммам возле компрессора, в соответствии со схемой холодильника. На фотографии видно, что моему холодильнику реально пора на пенсию, но речь не об этом.
Далее прикрутил платы на платформу от крышки.
Датчик DS18B20 протащил через отверстие на задней стенке холодильника, через которое входит фреонная трубка на испаритель внутри камеры. Провёл кабель вдоль короба от термостата и вывел наружу. Заодно и исправил косяк мастеров с лампочкой, которые как выяснилось, криво надели клеммы на патрон от лампы, эх. Но не будем о грустном.
Погонял систему в таком опасном открытом виде пару дней, дабы убедиться, что всё работает. После сделал гидроизоляцию платы управления, залив плату термоклеем в области микроконтроллера и надел крышку.
↑ Результаты проделанной работы
На мой взгляд, выглядит всё круто и аккуратно. Мама очень довольна изобретением и боится нажимать на кнопки, что бы без привычки ничего не сломать.
Выставил температуру в +4,5° и гистерезис в 1,5°. Итого вышло, что холодильник включается при +6° и выключается при +3°. По времени вышло, что компрессор работает 10 минут и отдыхает 55 минут, а это 0,15 рабочего времени. В Интернете сказано, что диапазон соотношение цикла работы/отдыха в 0,2-0,9 считается нормальным. Думаю, моя цифра показывает, что экономия электроэнергии находится на высоком уровне.
Это был интересный опыт в решении данной проблемы, которая возникает у многих владельцев старых холодильников.
↑ Файлы
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
На этом всё. Благодарю за внимание!
И да прибудут с вами интересные статьи на Датагоре!
Похожие новости
Комментарии (29)
Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.
Термостат на PIC контроллере
Задумка
Появилось у меня помещение для станка. Там должна быть температура определённого уровня, при влаге и холоде на улице. Электрокамин и печи не по мне, много дров, топлива и большое энергопотребление, при не так уж и большой производительности тепла на выходе. Присмотрел и приобрёл тепловентилятор, промышленного образца, с минимумом пластиковых, горючих материалов:
Характеристики:
– Номинальное напряжение, частота сети, В/Гц __220 / 50;
– Потребляемая мощность, кВт ____ 1 / 2 кВт;
– Отдача тепла, м3/час _____200;
Управление
Тепловентилятор есть, теперь необходимо сделать умную систему управления и контроля. Поискав в интернете нашлась схема из журнала Р-К №11/2008г., – «Цифровой термостат». Конструкция оказалась простой, как по мне, с двухстрочным цифровым экранчиком. Ниже приведена схема, нарисованная в программе SPlan 7.0.
По характеристикам термостат способен задавать температуру от -25 до +75°С, при шаге 0,25°С. Так же можно задать в предустановках меню спад и нарастание температуры шагом по 0,1°С.
Работа с термостатом осуществляется с помощью кнопок. Кнопками «+» и «-» (S1 и S2) определяется значения температуры или спада (нарастания), кнопка «MODE» (S3) – режим установки.
Для того чтобы задать температуру поддержания, нажимаем кнопку S3 и удерживаем её пока на экране не засветится «SET TEMPERATURE».
Управление схемой происходит микроконтроллером PIC16F628. Тактовая частота организована кварцом ZQ1 с частотой резонанса – 4МГц.
Управление тепловентилятором происходит с симистором VS1 – BT136. Управление симистором осуществляется при помощи оптопары MOC3043. Силовую схему управления тепловентилятора я дополнил промежуточным реле. Катушка реле стала играть роль нагрузки симистора, а её контакты запараллелил и скомутировал в цепь питания тепловентилятора.
Схема оперативного питания выполнена на малогабаритном герметичном трансформаторе, у него сдвоенная вторичная обмотка, 9V-0-9V, на номинальный ток 100mA. Выпрямитель исполнен на на двух диодах VD1и VD2. Если трансформатор с одной понижающей обмоткой необходимо применить схему моста. Контроллер и дисплей запитан от +5V через стабилизатор напряжения А2 (7805).
Для отключения подсветки пин 16 экрана можно отключить, или как я поставил выключатель.
Печатная плата термостата, чисто моя разработка.
В файле термостат.lay есть несколько страниц.
Третья задача – корпус. Выбрал Z20. Ниже приведена технология подгонки корпуса и изготовления отверстий при помощи шаблонов.