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

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих – 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 – 70
  • Двухканальный термостат, терморегулятор на ATmega8 – 67

Данное устройство — двухканальный термометр, термостат, терморегулятор собран на микроконтроллере ATmega8 и цифровых датчиках температуры DS18B20. Вся информация выводится на два трехразрядных семисегментных светодиодных индикатора. Эта статья завершает цикл статей с использованием микроконтроллера ATmega8 совместно с датчиками температуры DS18B20 (простой термометр, двухканальный термометр) с выводом информации на семисегментные индикаторы. В дальнейшем, мы конечно будем еще использовать датчики DS18B20 и микроконтроллер 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ºС — нагрузка будет включена, далее — по кругу

Читайте также:  Топ 10 морских чудовищ

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

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 вольт. Для этого обычно используют оптосимисторы (оптотриаки, драйверы управления симиситорами)

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

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

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

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

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

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

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

Termostat 2 kanala OK_AlgorithmBuilder (36,7 KiB, 26 671 hits)

Termostat 2 kanala OK_HEX (13,5 KiB, 37 436 hits)

Termostat 2 kanala EEPROM_HEX (91 bytes, 369 hits)

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

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

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

Termostat 2 kanala OA_HEX (13,6 KiB, 2 873 hits)

(67 голосов, оценка: 4,97 из 5)

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих – 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 – 70
  • Двухканальный термостат, терморегулятор на ATmega8 – 67

Данное устройство — двухканальный термометр, термостат, терморегулятор собран на микроконтроллере ATmega8 и цифровых датчиках температуры DS18B20. Вся информация выводится на два трехразрядных семисегментных светодиодных индикатора. Эта статья завершает цикл статей с использованием микроконтроллера ATmega8 совместно с датчиками температуры DS18B20 (простой термометр, двухканальный термометр) с выводом информации на семисегментные индикаторы. В дальнейшем, мы конечно будем еще использовать датчики DS18B20 и микроконтроллер 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 вольт. Для этого обычно используют оптосимисторы (оптотриаки, драйверы управления симиситорами)

Читайте также:  Установка windows 10 подождите бесконечно

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

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

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

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

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

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

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

Termostat 2 kanala OK_AlgorithmBuilder (36,7 KiB, 26 671 hits)

Termostat 2 kanala OK_HEX (13,5 KiB, 37 436 hits)

Termostat 2 kanala EEPROM_HEX (91 bytes, 369 hits)

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

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

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

Termostat 2 kanala OA_HEX (13,6 KiB, 2 873 hits)

(67 голосов, оценка: 4,97 из 5)

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

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

Рассмотрим подробно принципиальную схему, функции меню и возможности устройства.

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

В основе схемы устройства находится микроконтроллер производства фирмы ATMEL семейства AVR — ATMega8 (IC4). Микроконтроллер работает с цифровым датчиком температуры IC2 DS18B20 и микросхемой реального времени IC3 DS1307. Данные выводятся на жидкокристаллический дисплей на шестнадцать знаков в две строки. Нагрузка коммутируется с бытовой сетью переменного напряжения 220 В через симисторы VS1-VS3 (BT139), которые связаны с микроконтроллером через гальваническую развязку собранную на оптосимисторах ОС1-ОС3, в данном случае это МОС3061. Таким образом микроконтроллер управляет тремя устройствами, через отдельные функциональные возможности о которых говорится ниже.

Питание схемы осуществлено по классической схеме выпрямителя на базе интегрального стабилизатора напряжения TL7805 (IC1).

Отображение данных и настройка

В нормальном положении (главном меню) отображаются следующие данные:

  • текущее время (часы, минуты, секунды);
  • текущая температура в градусах Цельсия;
  • текущая дата (число, месяц, год);
  • текущие режимы (Р — расписание; Ц — цикл; Т — термостат;).

Режим отображения данных в главном меню

Отображение режимов для настройки

Поочередным нажатием кнопки S5 (Режим / Настр.) выбираем необходимую функцию для на настройки часов, календаря, режимов включения нагрузки или коррекции работы часов. Подойдя к нужной функции и нажав клавишу S4 (Выбор) можем изменить данные клавишами S2 и S1 («+» и «-»). Принимаем изменения клавишей S4 (Выбор), отменить же изменение и вернуться в предыдущее меню возможно через S3 (Отмена / Пред.)

Режим «Расписание» (Р)

В режиме «Расписание», который отображается буквой «Р» (замечу, что меню отображается на украинском языке) можно задать суточное расписание включения и выключения нагрузки через симистор VS1. Здесь з адаем время когда микроконтроллер включит нагрузку и время когда она будет выключена. Таких событий в расписании можно задать не более 15-ти. В этом же меню выбираем включить или выключить данную функцию.

Настройка режима «Расписание»

При включенном режиме «Расписание» в главном меню отображается буква «Р».
Режим «Цикл» (Ц)

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

Настройка режима «Цикл»

При включенном режиме «Цикл» в главном меню отображается буква «Ц».

Режим «Термостат» (Т)

В режиме «Термостат» мы можем управлять электрическим нагревателем или охладителем через симистор VS3. Для этого выбираем пороговое значение температуры при котором включается нагреватель или охладитель. Если в настройке выбрать опцию «Нагреватель», то нагрузка включится при изменении температуры на 1ºС ниже заданного значения. При включенной опции «Охладитель» нагрузка включится при изменении температуры на 1ºС выше заданного значения.

Настройка режима «Термостат»

При включенном режиме «Термостат» в главном меню отображается буква «Т».

Функция «Коррекция»

Известно, что точность подобных часов зависит от микросхемы реального времени DS1307 и специального кварцевого резонатора частотой 32.768 кГц и, как правило, трудно подобрать детали для абсолютно точных часов. Поэтому реализована функция «Коррекция», где можно задать компенсацию времени.

В настройке задаем сколько секунд добавить или отнять в сутки или в неделю.

Печатная плата и программа

Расположение деталей на печатной плате

Расположение розеток на задней стенке прибора

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

Скачать прошивку[/hidepost]


Внимание! Есть научная работа по этому проекту написанная на 54 страницы (на украинском языке). Оформление идеально подходит под дипломную или курсовую работу. Скачать содержание.

Связь с автором

Возможно, вам это будет интересно:

Постоянная ссылка на это сообщение: http://meandr.org/archives/25160

  • lyova к 20.02.2016 в 19:28
  • #
  • Войдите, чтобы ответить

Привет! А есть прошивка на латинских символах не для кириличных дисплеев?

  • admin к 26.02.2016 в 21:44
    Автор
  • #
  • Войдите, чтобы ответить
  • didm к 26.02.2016 в 16:36
  • #
  • Войдите, чтобы ответить

Не пойму- почему так кренка греется?. Проверил на КЗ несколько раз- всё в норме.

  • admin к 26.02.2016 в 21:43
    Автор
  • #
  • Войдите, чтобы ответить

Значит есть большая нагрузка. Смотрите ошибку в монтаже.

  • vicfamily к 05.03.2016 в 20:35
  • #
  • Войдите, чтобы ответить

падение большое , подсветка индикатора больше 150мА забирает.
перед 5 вольтовой поставить еще одну на 9 вольт ,или , что нибудь на mc34063.

  • Tsaritsin.56 к 05.03.2016 в 14:21
  • #
  • Войдите, чтобы ответить

Подскажите, как правильно прошить микроконтроллер? В папке 3 файла.

  • Neo1 к 05.03.2016 в 15:47
  • #
  • Войдите, чтобы ответить

Прошить микроконтроллер файлом с расширением .hex

  • Tsaritsin.56 к 06.03.2016 в 08:27
  • #
  • Войдите, чтобы ответить

Это была старая папка. Все, прошил.

  • lyova к 07.03.2016 в 19:57
  • #
  • Войдите, чтобы ответить

А как в режиме коррекции включить -9 секунд? плюсом и минусом регулируется от 0 до 59 только… как включить в -?

  • admin к 07.03.2016 в 21:05
    Автор
  • #
  • Войдите, чтобы ответить

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

  • Tsaritsin.56 к 11.03.2016 в 09:43
  • #
  • Войдите, чтобы ответить

чет часы неработают. показывают 00:00:80

  • admin к 11.03.2016 в 13:28
    Автор
  • #
  • Войдите, чтобы ответить

После настройки времени часы будут идти нормально

  • Valarian к 04.02.2018 в 15:55
  • #
  • Войдите, чтобы ответить

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

  • Valarian к 27.02.2018 в 11:26
  • #
  • Войдите, чтобы ответить

Нашёл в чем проблема с настройками времени и даты. Был нерабочий таймер купленный в магазине «Космодром». Перепаял DS1307 (SMD SOIC-8) на другой такой же, но купленный в Китае . Всё работает отлично, проблемы с настройками исчезли. Спасибо автору за разработанный прибор.

Оцените статью
Добавить комментарий

Adblock
detector