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

Микроконтроллеры Процессоры, проекты, программирование

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

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

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

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

Для регулирования температуры какого-либо объекта можно на выбор использовать несколько алгоритмов. В промышленных системах наиболее часто встречается позиционное управление, либо управление по ПИ или ПИД закону. Наиболее просто реализуется позиционный принцип. Его можно встретить в огромном количестве устройств.

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

Структурная схема терморегулятора

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

Позиционное управление температурой

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

Единственной проблемой становится частое срабатывание реле, при колебаниях температуры вблизи задания.

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

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

Принципиальная схема

Основой термостата выбран популярный микроконтроллер PIC16F676. Его характеристики наиболее оптимально подходят для создания простых измерительных устройств и устройств автоматики.

Для тактирования использован внешний кварцевый резонатор на 20 МГц. Индикация температуры производится в динамическом режиме на 3-разрядном светодиодном индикаторе с общим катодом.

С целью экономии выводов контроллера, управление сегментами реализовано через микросхему сдвигового регистра 74HC164.

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

Температура измеряется датчиком с цифровым выходом модели MCP9800.  Его характеристики позволяют отображать результаты измерения с разрешением 0.1 градуса. Точность при этом составляет ±0,5°С. Подключение к микроконтроллеру выполнено по шине I2C, что при необходимости позволяет легко изменить модель датчика на другую.

Управление нагревательным элементом может быть выполнено двумя способами. Один из них реализуется с помощью миниатюрного электромагнитного реле серии RE03. В приведенной схеме используется модель RE032005, срабатывающая от напряжения 5В. Нормально-разомкнутый контакт реле способен коммутировать нагрузку переменного тока с напряжением 230В и током 6А.

Печатная плата терморегулятора Расположение элементов сверху Расположение элементов снизу

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

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

При использовании опторазвязки не требуется установка транзистора

Работа термостата

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

Кнопки S3 и S2 предназначены для соответственно увеличения и уменьшения уставки. Шаг изменения задания равен разрешению датчика и составляет 0.5 градуса. Диапазон изменения уставки – 0..99.9 градусов.

Для выхода из режима задания требуется вновь длительно нажать кнопку S3.

Собранная плата терморегулятора

К сожалению, малый объем памяти микроконтроллера не позволил реализовать задание гистерезиса, поэтому он задается программно.

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

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

Файлы проекта 

You have no rights to post comments

Источник: https://mcucpu.ru/index.php/project2/automatic/133-termoregulyator-na-mikrokontrollere-pic16f676

Простой термостат – термометр с энкодером на микроконтроллере 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 Kb, скачано: 122)

Источник: http://www.joyta.ru/11230-prostoj-termostat-termometr-s-enkoderom-na-mikrokontrollere-pic16f628-sxema/

Контроллер нагрева с датчиком из термопары – Мои статьи – Каталог статей – Персональный сайт Eddy71

Источник: http://smartelectronix.biz/publ/kontroller_nagreva_s_datchikom_iz_termopary/1-1-0-40

Двухканальный термостат, терморегулятор на ATmega8

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»

Некоторые пояснения к некоторым понятиям.
1. Под словом «термостат» подразумевается способность устройства поддерживать определенную температуру
2. Под словом «терморегулятор» подразумевается способность устройства поддерживать температуру в определенных границах
3. Это условное разделение

Описание и характеристики двухканального термостата (терморегулятора) на ATmega8 и DS18B20

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

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

Поддержание температуры в определенных границах (положительной, отрицательной, смешанной для режимов «нагрев» и «охлаждение»)
3.

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

Шаг установки температуры — 1 градус, чего вполне достаточно. Делать шаг в 0,1 градуса, при точности датчика +-0,5ºС, мне кажется особого смысла нет. А если еще изменение температуры происходит с достаточно большой скоростью, то датчик просто не будет успевать отслеживать текущую температуру с точностью до 0,1.

Диапазон установки температур включения и выключения нагрузки: — положительная — до +99ºС — отрицательная — до -50ºС Включение нагрузки происходит высоким уровнем с вывода порта микроконтроллера, выключение — низким уровнем.

Двухканальный термометр с диапазоном измерения текущей температуры от -55ºС до +125ºС с разрешающей способностью: — положительные температуры до 99ºС — 0,1 градуса, свыше 99 градусов — до одного градуса — отрицательные температуры до -9,9ºС — 0,1 градуса, ниже -9,9 градуса — до одного градуса Период измерений температуры — около 1 сек.

Устройство управляется тремя кнопками Отключение канала производится путем записи нулевых установок включения и выключения канала

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

При возникновении ошибки в работе с датчиком соответствующий номер ошибки выводится на индикатор, а нагрузка отключается:
Еr.1 — нет высокого уровня на линии DQ
Er.2 — нет импульса присутствия от датчика
Er.

3 — не восстановлен высокий уровень на линии DQ после импульса присутствия К сожалению, из-за необходимости организации динамической индикации шести разрядов индикаторов, пока не удалось решить проблему с проверкой кода CRC.

Пока эта проблема решена наполовину — проверку СRC возможно проводить, и даже, если не приглядываться, мерцание индикаторов незаметно, но полностью пока она не решена. В данной программе проверки кода CRC нет. Если удастся ввести проверку CRC, то обязательно будет выложена новая программа.

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

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

В этом устройстве алгоритм построен немного иначе (мне кажется, что так практичней и удобней):
— выставляется температура включения нагрузки
— выставляется температура выключения нагрузки
— и все

В чем плюсы (на мой взгляд) такого алгоритма: 1. Если нам надо, к примеру, поддерживать температуру в пределах 22-25ºС, то именно эти значения мы и выставляем, не надо искать «центр» и высчитывать величину гистерезиса 2.

Режим работы — «нагрев» или «охлаждение» устройством выбирается автоматически, исходя из логики установленных значений включения и выключения нагрузки, к примеру: — если температура включения +20ºС, а выключения +25ºС, то, естественно выбирается режим «нагрев»

— если температура включения +5ºС, а выключения -10ºС, то, естественно, выбирается режим «охлаждение»

Схема двухканального термостата, терморегулятора на ATmega8:

Схема аналогична схеме двухканального термометра. Добавлены три кнопки для управления устройством, выводы микроконтроллера РС3 и РС4 подключаются к блокам управления нагрузками (первому и второму соответственно). На схеме блоки управления не раскрыты, о них мы поговорим в конце статьи.

Программа двухканального термостата (терморегулятора) на ATmega8 и DS18B20

Микроконтроллер ATmega8 (с любыми буквенными обозначениями) с внутренней тактовой частотой 8 МГц. Алгоритм программы реализован на прерываниях от таймеров-счетчиков Т0 (рабочий режим) и Т2 (режим установки порогов включения/выключения нагрузки).

При включении устройства происходит настройка необходимых данных, загрузка данных из EEPROM, предделители таймеров устанавливаются в СК/64, прерывания от таймеров — по переполнению (период 2 мс). Разрешается прерывание от таймера Т0, разрешается глобальное прерывание.

Далее, по прерыванию от таймера Т0: — происходит считывание данных с датчиков DS18B20 и вывод текущей температуры на индикаторы — сравнение текущей температуры от датчиков со значениями установленных порогов включения/выключения — управление нагрузками (включение/выключение) — опрос кнопок При нажатии на кнопку «Выбор»: — запрещается прерывание от таймера Т0 — разрешается прерывание от таймера Т2 Далее, по прерыванию от таймера Т2: — опрос кнопок — установка порогов включения/выключения для двух каналов — запись данных установок в EEPROM — после установки порогов включения/выключения — аппаратный сброс

Далее — по кругу.

Управление двухканальным термостатом (терморегулятором) на ATmega8 и DS18B20

Управление устройством осуществляется тремя кнопками:
1. «Выбор»
— переход в режим установки порогов включения/выключения каналов
— выбор очередного пункта меню установки порогов включения/выключения каналов
— аппаратный сброс (автоматически, после установки порогов)
2.

«+» — увеличение показаний (принудительное включение первого канала в режиме однократного нагреваохлаждения)
3.

«-» — уменьшение показаний (принудительное включение второго канала в режиме однократного нагреваохлаждения)
При однократном нажатии кнопок №2 и №3 происходит изменение показаний на 1 градус, при длительном нажатии — автоматическое увеличение/уменьшение показаний на 1 градус с приемлемой периодичностью
При первоначальном включении устройства в установках порогов включения/отключения нагрузки записаны нули. При повторном включении устройства, в режиме установки порогов будут высвечиваться ранее записанные установки.

1. Режим термостатирования

В этом режиме необходимо установить одинаковые параметры включения и отключения нагрузки. При этом надо учитывать, что поддержание температуры в положительном диапазоне температур осуществляется в режиме «Нагрев». К примеру, нам надо, на нагрузке №1 поддерживать постоянную температуру +45ºС.

Выставляем температуру включения и температуру выключения 45ºС. Если температура ниже установленного значения, устройство включит нагрузку. При достижении температуры +45ºС, устройство отключит нагрузку.

При «попытке» температуры опуститься ниже +45ºС (на 0,1 градуса) устройство включит нагрузку. При достижении температуры +45ºС устройство выключит нагрузку. Поддержание температуры в отрицательном диапазоне осуществляется в режиме «Охлаждение».

К примеру, нам надо, на нагрузке №2 поддерживать постоянную температуру -7ºС. Выставляем температуру включения и выключения нагрузки -7ºС.

Если температура выше -7ºС (к примеру +1 градус) устройство включит нагрузку. При достижении температуры -7ºС, устройство отключит нагрузку. При увеличении температуры на 0,1 градус (-6,9ºС) нагрузка будет включена.

2. Режим терморегулирования

В этом режиме выбор режима «Нагрев» или «Охлаждение» осуществляется автоматически Пример: 1.

Допустим, нам необходимо поддерживать температуру в помещении путем его нагрева в пределах от +18ºС, до +21ºС: — устанавливаем температуру включения +18ºС — устанавливаем температуру выключения +21ºС Устройство автоматически определяет, что выбран режим «Нагрев», при этом: — если температура выше +21ºС, нагрузка будет выключена, при опускании температуры до +18ºС — устройство включит нагрузку, а при достижении температуры +21ºС — выключит нагрузку, далее по кругу — если температура ниже +18ºС — устройство включит нагрузку, при повышении температуры до +21ºС — устройство выключит нагрузку, при опускании температуры до +18ºС — устройство включит нагрузку, далее — по кругу 2. Допустим, нам необходимо поддерживать температуру в холодильной установке путем охлаждения в пределах от -4ºС, до -6ºС — устанавливаем температуру включения -4ºС — устанавливаем температуру выключения -6ºС Устройство автоматически определяет, что выбран режим «Охлаждение», при этом: — если температура ниже -6ºС ( к примеру -8ºС), нагрузка будет выключена, при повышении температуры до -4ºС — устройство включит нагрузку, при достижении температуры -6ºС — устройство выключит нагрузку

— если температура выше -4ºС, устройство включит нагрузку, при понижении температуры до -6ºС — устройство отключит нагрузку, при достижении температуры -4ºС — нагрузка будет включена, далее — по кругу

Если один из температурных порогов будет в отрицательном диапазоне температур а второй в положительном, то все равно режим «Нагрев» или «Охлаждение» будет определятся автоматически и устройство будет работать по описанным выше алгоритмам.

3. Режим однократного нагрева/охлаждения до определенной температуры

Не всегда необходимо поддерживать постоянную температуру. К примеру, необходимо утром и вечером нагревать воду в самодельном титане (или в титане с неисправным блоком управления) до определенной температуры, или что-то периодически охлаждать. Данный режим как раз пригодится в таких случаях. 1.

Допустим, на нагрузке №1, нам необходимо периодически подогревать воду до +90ºС: — для температуру включения устанавливаем нулевые значения — температуру выключения устанавливаем +90ºС — когда потребуется включить этот режим — нажимаем кнопку №2, при этом, если температура выше +90ºС — нагрузка останется в выключенном состоянии, если температура ниже +90ºС — устройство включит нагрузку, при достижении температуры +90ºС — устройство отключит нагрузку. Следующее включение возможно только по нажатию кнопки №2. 2. Допустим, на нагрузке №2, иногда необходимо что-то охлаждать до температуры -15ºС: — для температуру включения устанавливаем нулевые значения — температуру выключения устанавливаем -15ºС

— когда потребуется включить этот режим — нажимаем кнопку №3, при этом, если температура ниже -15ºС — нагрузка останется в выключенном состоянии, если температура выше -15ºС — устройство включит нагрузку, при достижении температуры -15ºС — устройство отключит нагрузку. Следующее включение возможно только по нажатию кнопки №3.

4. Отключение каналов управления нагрузками

Если какой-либо канал, или оба канала, не используются — в этом случае эти каналы необходимо отключить.
Отключение канала (каналов) производится путем записи нулевых значений во все установки. По этой причине, термостатирование при установке порогов включения/выключения в 0ºС — не возможна.

Подключение нагрузки к термостату (терморегулятору) на ATmega8

Нагрузка может быть активной (лампочки накаливания, ТЭНы, электронагревательные приборы …)
Нагрузка может быть реактивной — емкостной и индуктивной.

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

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

Симисторы (триаки) очень удобны в управление активными нагрузками в сетях переменного тока. Реле имеет ограниченный ресурс работы (хотя и очень большой) — обычно около 100 000 переключений и может коммутировать нагрузку в несколько киловатт.

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

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

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

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

Светодиоды сигнализируют о включенной нагрузке, а также позволяют визуально контролировать ручной режим включения нагрузок (однократный нагрев/охлаждение). При использовании других схем управления нагрузками необходимо помнить, что включение нагрузки происходит высоким уровнем с вывода микроконтроллера, а выключение — низким уровнем.

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

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

И еще несколько схем подключения нагрузки к микроконтроллеру

Некоторые справочные данные:

Симистор BT138:

Транзистор 2N7000:

Диод 1N5819:

Характеристики некоторых симисторов:

Программа двухканального термометра, термостата, терморегулятора на ATmega8 и DS18B20:

  Программа двухканального термостата в HEX коде (13,5 KiB, 7 058 hits)

  Программа в Algorithm Builder (42,4 KiB, 95 734 hits)

Скачать программу с ЯндексДиска

Настройка FUSE-битов:

Прошивка для индикаторов со схемой включения «Общий анод»

Прошивка предоставлена Вячеславом Кучером и Юрием Градовым, за что им большое спасибо.

Для работы программы с индикаторами, включаемыми по схеме «Общий Анод» в представленной выше схеме необходимо заменить транзисторы структуры NPN на транзисторы структуры PNP (к примеру ВС557). При этом эмиттеры транзисторов должны подключаться к «+» источника питания, а коллекторы к разрядам индикатора.

В магазине сайта «МирМК-SHOP» вы можете заказать необходимые детали для сборки термостата/терморегулятор (включая запрограммированный микроконтроллер):

Другие конструкции на микроконтроллерах
1. Простые электронные часы на микроконтроллере ATyni26, с использование микросхемы часов реального времени DS1307
2. Простой термометр на микроконтроллере ATmega8 и датчика температуры DS18B20
3.

Двухканальный термометр на микроконтроллере ATmega8 и датчиках температуры DS18B20
4. Двухканальный термометр, термостат, терморегулятор с возможностью работы по времени, одноканальный таймер реального времени на ATmega8 и датчиках DS18B20
5.

Двухканальный термометр, часы на ATmega8, датчиках температуры DS18B20, RTC DS1307, LCD 1602

Источник: https://microkontroller.ru/shemyi-konstruktsii-na-mikrokontrollerah/dvuhkanalnyiy-termostat-termoregulyator-na-atmega8/

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

Источник: http://www.kaligraf.narod.ru/termoreg/termoreg_p12f629_v0.html

Эта схема термостата будет интересна тем, у кого возникла необходимость установить определенную температуру в помещении, и поддерживать ее в течении длительного времени. Схема не сложная, она содержит микроконтроллер, три кнопки несколько резисторов, конденсатор и LCD. Для контроля температуры используется один датчик DS18B20 фирмы MAXIM.

Как вы видите, она и правда не сложная. Кнопкой SB1 выбирается режим ввода (установки). Кнопкой SB2 отнимают от числа единицу, а кнопкой SB3 – прибавляют. Но тут есть одна особенность –  вводить число нужно при нажатой кнопке SB1.

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

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

Кстати надписи «демо версия» не будет – это ограничение в симуляторе.

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

Как видите она двухсторонняя. На плате есть два разъема – J1 и J2. J1- это разъем питания (5V), а J2 – разъем к которому подключается исполнительное устройство. ВНИМАНИЕ! Не подключайте исполнительное устройство без усилителя мощности (напрямую  к порту микроконтроллера), это чревато его выходом из строя. Используйте хотя бы эммитерный повторитель!

Если вы использовали мой вариант разводки печатной платы, то ее внешний вид будет таким:

Детали и их замены:

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

Разъемы – штыревые, можно найти в любом радиомагазине или выпаять со старой платы (если совсем нету, то можно обойтись и без них, просто напрямую впаяв провода в отверстия на печатной плате). Датчик DS18B20, к сожалению, ничем заменить нельзя. Микроконтроллер же можно заменить на практически аналогичный PIC16F877.

На заметку – микроконтроллер желательно ставить на панельку

Работа с устройством:

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

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

Так же у устройства есть еще одна особенность – при включении (до момента включения) нужно удерживать нажатой кнопку SB1. Так сказать «защита на дурака».

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

Скачать исходники, прошивку, ПП, проект в Proteus и Flowcode

Источник: http://shemopedia.ru/termostat-na-pic16f877a-i-lcd-nokia-3310.html

Простейший цифровой термостат на PIC микроконтроллере

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

Схема этого простейшего устройства содержит всего лишь полтора десятка копеечных элементов, самым дорогим из которых является цифровой датчик температуры DS18B20. К слову сказать он оказался неожиданно дорогим (130 рублей в Хабаровске).

Сердцем устройства является дешёвый и доступный микроконтроллер PIC12F629 фирмы MICROCHIP.

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

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

Управление устройством осуществляется одной кнопкой, а индикация производится одним светодиодом.

Для чего же он такой простой нужен? Это , но если коротко, то нужен он для автоматического управления дополнительной электрической помпой автомобиля. Однако сфера его применения этим не ограничивается. При необходимости и соответствующем желании его можно применить где-нибудь и в быту.

Теперь о самой схеме.

Принципиальная схема устройства приведена на рисунке 1.

Рисунок 1

Основной элемент схемы – доступный и недорогой микроконтроллер PIC12F629 фирмы Microchip.

Питание микроконтроллера осуществляется от стабилизатора DA1, напряжение на который поступает с реле выключателя печки через диод VD1. Это обеспечивает питание микроконтроллера при включении печки.

Резисторы R2 и R6 образуют делитель напряжения, необходимый для контроля уровня разряда аккумуляторной батареи (АКБ) автомобиля. Резистор R1 служит для питания цифрового датчика температуры, который включён по схеме паразитного питания. Резистор R4 обеспечивает подтяжку к плюсу вывода микроконтроллера, к которому подключена кнопка управления.

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

Токоограничительные резисторы R3 и R5 ограничивают ток светодиода и транзистора VT1 соответственно.

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

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

При падении температуры ниже определённого значения включается реле управления, при повышении этого значения с гистерезисом в 2 градуса, реле выключается. Температурным гистерезисом называется разность температур включения и выключения терморегулятора.

От величины гистерезиса зависит точность поддержания температуры и частота включения-выключения реле. В исходных настройках температура выключения 20 градусов, температура включения реле – 18 градусов. Вход в режим изменения настроек позволяет оперативно изменять температуру срабатывания реле.

В режиме «постоянно включено» и в автоматическом режиме дополнительно измеряется уровень напряжения на АКБ. При снижении напряжения АКБ ниже 10 вольт реле управления отключается, а светодиод начинает быстро мигать.

Для исключения многократного переключения реле под влиянием шумов и помех при граничной величине уровня напряжения на АКБ, включение реле осуществится при напряжении выше 11,3 вольта.

Таким образом гистерезис составляет порядка 1,3 вольта.

По поведению свечения светодиода можно определить режим работы устройства.

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

Для таких температур применяют датчики в виде термопар. У меня как раз завалялось несколько термопар от сгоревших китайских тестеров. Если я не ошибаюсь, то это термопары К-типа. Устройство сделал на однодолларовом микроконтроллере PIC16F676.

Плата термоконтроллера выглядит вполне заурядно:
 

  
  Схема терморегулятора не отличается ни новизной ни изысканностью. Микроконтроллер, семисегментный трёхразрядный индикатор с общим катодом, стабилизатор, датчик температуры окружающего воздуха и усилитель термопары. Управление нагрузкой можно осуществить как реле, так и симистором (что в утюге я и сделал).
 Выглядит схема так:
 

 

Если вместо реле хотите применить симистор, схема будет иметь такой вид:

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

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

Стоит значительно дешевле чем DS18B20, работать с помощью АЦП с ней намного проще (можете погуглить даташит на неё).

 

 После сборки эта плата потребует небольшой настройки. Дело в том, что при питании от обычных в таких случаях 5в один шаг АЦП будет 4,88мВ. Что не очень удобно для вычислений. Датчик температуры выдаёт после преобразования 10мВ на градус.

Логичным было слегка поднять напряжение питания микроконтроллера PIC16F676 чтобы получить удобные 5мВ на шаг. Поэтому первая настройка это калибровка напряжения питания.

Делается это очень просто: при лежащей на столе термопаре включаем нагрев (правая кнопка) без подключения нагревателя и вращая переменный резистор 470 Ом добиваемся на экране значения текущей комнатной температуры.
 Следующая настройка это калибровка усилителя термопары.

Теперь берём кипящий чайник и опускаем туда (в полиэтиленовом пакете) термопару. Вращая резистор 100к добиваемся показания 99-100 градусов на индикаторе. Всё, можно пользоваться.

Если при повторении этой конструкции у Вас возникли какие-то вопросы или идеи по улучшению её, напишите мне в онлайн форме свои соображения по этому поводу.

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

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

В программе выставлены два порога температуры – нижний порог(Tn) и верхний порог(Tv).

При выключенном вентиляторе

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

При достижении температуры верхнего порога на выходе GP1 микроконтроллера выставляется логическая единица. Транзистор открывается, реле соответственно включается и включает вентилятор охлаждения.

При включенном вентиляторе

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

GP1

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

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

Микроконтроллер PIC12F629 имеет встроенный источник тактовой частоты, работающий на частоте 4 мегагерца. Этот встроенный генератор калибруется на заводе и в памяти программ новых микроконтроллеров записана калибровочная константа. Записана она по адресу 0x3FF и выглядит эта константа в памяти программ вот таким образом:

При программираммировании микроконтроллера с помощью простых программаторов типа IcProg PonyProg присутствует вероятность стереть ячеку памяти с записанной константой.

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

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

В этом случае останется возможность прописать её вручную и восстановить при прошивке, если вдруг корректирующая константа случайно сотрётся. Схема подключения программатора PicKit2 к микроконтроллеру PIC12F629 показана на рисунке:

Применение прcотой схемы позволяет обойтись минимумом компонентов и максимально удешевить изделие, но есть и свои минусы.

От нормального индикатора температуры пришлось отказаться – никаких цифр, некогда на них смотреть, не нужны, да и индикатор покупать не придётся, экономия опять-же.

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

       больше верхней уставки Tv

  между уставками Tn и Tv

      меньше нижней уставки Tn

Индикация температурных диапазонов работает  так:

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

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

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

В этом варианте программы так-же реализована проверка подключения датчика и проверка 

корректности

контрольной суммы считанной RAM датчика DS18B20.

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

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

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

Сбой алгоритма регулятора при этом по времени занимает около 18 миллисекунд и практически незаметен на фоне секундного интервала измерения температуры.

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

Следующим логическим шагом по усовершенствованию конструкции этого варианта термостата является возможность задать верхнюю Tv и нижнюю Tn уставки с точностью до долей градуса.

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

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

Для облегчения работы с заданием  уставок была написана программа – конвертер значений температур в формат данных датчика DS18B20. Результаты работы конвертера выглядят так:

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

Уставки Tn и Tv задаются для данного варианта термостабилизатора в EEPROM и занимают четыре ячейки. Первые два байта EEPROM – младший и старший байты нижней уставки регулятора Tn. Затем два байта  – младший и старший байты верхней уставки Tv. Для температуры уставок 25 и 27 градусов в EEPROM эти ячейки выглядят вот так :

Как можно видеть на рисунке, байты переставлены местами, то есть сначала стоит младший байт, потом старший байт уставки температуры. Первоначально в HEX виде значенние температуры 25 градусов равно 0x0190, а для 27 градусов 0x01B0.

 Изменить эти ячейки можно на любые необхдимые значения, во всём диапазоне температур, которые поддерживаются датчиком DS18B20. Поддерживаемый диапазон от -55 до +128 градусов цельсия.

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

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

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

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

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

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

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

Используя ту-же самую схему, в терморегуляторе возможно применить микроконтроллер 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 указан на схеме

режим состояние светодиода

состояние устройства реле устройства
1 не горит не работает выключено
2 горит непрерывно постоянно включено включено
3 не горит, но периодически мигает автоматический режим (диапазон высокой температуры) выключено
3 горит и периодически мигает автоматический режим (диапазон низкой температуры) включено
3 не горит, но периодически мигает серией быстрых вспышек автоматический режим. Неисправен датчик температуры выключено
2, 3 непрерывно мигает постоянно включен или автоматический режим. Низкий заряд АКБ выключено

Изменение режима работы устройства производится путём нажатия и удержания (около 6 секунд) кнопки в нажатом состоянии.

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

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

режим работы устройства количество миганий светодиода при выборе режима работы
не работает 1
постоянно включен 2
автоматический 3

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

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

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

В первой серии вспышек отобразиться знак температуры (1 вспышка – положительная, 2 вспышки – отрицательная, 3 вспышки – нулевая температура). Второй серией вспышек отобразиться сама температура (по числу вспышек светодиода). После чего устройство перейдёт в обычный режим работы.

При неисправности датчика температуры светодиод вспыхнет 5 раз одной серией вспышек.

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

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

Необходимо нажать кнопку устройства количество раз соответствующее желаемой температуре включения реле. Каждое нажатие на кнопку сопровождается одной вспышкой светодиода. Значение может быть в предёлах от 1 до 30. После окончания ввода необходимо ожидать 20 секунд.

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

Если при входе в режим изменения настроек кнопку не нажимать, то через 20 секунд произойдёт выход из режима без изменения настроек.

Подключение устройства. Устройство запитывается от бортовой сети автомобиля +12 Вольт. Провод питаня подключается в салоне автомобиля к проводу питания вентилятора печки. Клемма массы закручивается под любой удобный болт соединённый с кузовом автомобиля. Реле управления – автомобильное 12-ти вольтовое с шунтирующим диодом (в колодке).

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

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

Правильно собранное устройство в настройке не нуждается и сразу работоспособно.

Разводка печатной платы приведена на рисунке 2.

Рисунок 2

Внешний вид готового устройства приведён на рисунке 3.

Рисунок 3

Перед впаиванием микропроцессора его необходимо прошить. Сделать это можно даже самым простым программатором.

Схема (SPLAN 7.0), разводка печатной платы (Sprint Layout 4.0), прошивка (HEX) и исходник (ASM) доступны для скачивания по .

Данное устройство успешно установлено и функционирует на автомобиле супруги, о чём можно почитать .

Источник: http://sprinter4wd.narod.ru/moi_proekti/termostat1

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}