Схемы на микроконтроллерах своими руками на датчиках температуры и влажности

Добавил пользователь Алексей Ф.
Обновлено: 18.09.2024

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20)

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) умеет:

  • измерять и отображать температуру в диапазоне:
    -55. -10 и +100. +125 с точностью 1 градус(ds18b20 и ds18s20)
    -в диапазоне -9,9. +99,9 с точностью 0,1 градус(ds18b20)
    -в диапазоне -9,5. +99,5 с точностью 0,5 градус(ds18s20);
  • Автоматически определять датчик DS18B20 или DS18S20;
  • Автоматически проверять датчик на аварию;
  • Запоминать максимальную и минимальную измеренные температуры.

Также в термометре предусмотрена легкая замена 7 сегментного индикатора с ОК на индикатор с ОА. Организована щадящая процедура записи в EEPROM память микроконтроллера. Вольтметр, который неплохо себя зарекомендовал, описан в этой статье - Вольтметр на PIC16F676.

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

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

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

Рисунок 1 - Принципиальная схема термометра на PIC16F628A + ds18b20/ds18s20

Описывать всю принципиальную схему термометра не стану, так как она довольно проста, остановлюсь только на особенностях.

В качестве микроконтроллера применяется PIC16F628A фирмы Microchip. Это недорогой контроллер и к тому же не дефицитный.

Для измерения температуры используются цифровые датчики DS18B20 или DS18S20 фирмы Maxim. Эти датчики не дорогие, малые по размеру и информация о измеренной температуре передается в цифровом виде. Такое решение позволяет, не тревожиться о сечении проводов, о их длине и прочем. Датчики DS18B20, DS18S20 способны работать в диапазоне температур от -55… +125 °С.

Температура выводится на 7-ми сегментный 3-х разрядный LED индикатор с общим катодом (ОК) или с (ОА).

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

Кнопкой SA1 можно оперативно переключать датчики(улица, дом).

Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости.

В таблице 1 можно ознакомиться со всем перечнем деталей и возможной их заменой на аналог.

Таблица 1 – Перечень деталей для сборки термометра
Позиционное обозначение Наименование Аналог/замена
С1, С2 Конденсатор керамический - 0,1мкФх50В -
С3 Конденсатор электролитический - 220мкФх10В
DD1 Микроконтроллер PIC16F628A PIC16F648A
DD2,DD3 Датчик температуры DS18B20 или DS18S20
GB1 Три пальчиковых батарейки 1,5В
HG1 7-ми сегментный LED индикатор KEM-5631-ASR (OK) Любой другой маломощный для динамической индикации и подходящий по подключению.
R1,R3,R14,R15 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R2,R16 Резистор 0,125Вт 5,1 кОм SMD типоразмер 0805
R4,R13 Резистор 0,125Вт 4,7 кОм SMD типоразмер 0805
R17-R19 Резистор 0,125Вт 4,3 кОм SMD типоразмер 0805
R5-R12 Резистор 0,125Вт 330 Ом SMD типоразмер 0805
SA1 Любой подходящий переключатель
SB1 Кнопка тактовая
VT1-VT3 Транзистор BC556B для индикатора с ОК/ транзистор BC546B для индикатора с ОА KT3107/КТ3102
XT1 Клеммник на 3 контакта.

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

Упрощенная модель термометра на PIC16F628A

Рисунок 2 – Модель термометра на микроконтроллере PIC16F628A в Proteus’e

На рисунке 3-4 показана печатная плата цифрового термометра

Печатная плата термометра на микроконтроллере PIC16F628A(низ)

Рисунок 3 – Печатная плата термометра на микроконтроллере PIC16F628A(низ) не в масштабе.

Печатная плата термометра на микроконтроллере PIC16F628A(верх)

Рисунок 4 – Печатная плата термометра на микроконтроллере PIC16F628A(верх) не в масштабе.

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

Результат работы рисунки 5-7.

Внешний вид термометра на микроконтроллере PIC16F628A

Рисунок 5 - Внешний вид термометра

Внешний вид термометра на микроконтроллере PIC16F628A

Рисунок 6 - Внешний вид термометра

Внешний вид термометра на микроконтроллере PIC16F628A

Рисунок 7 - Внешний вид термометра

ВАЖНО! В прошивку термометра не вшита реклама можно пользоваться в свое удовольствие.

Поправки, внесенные в рабочую программу:

1 автоматическое определение датчика DS18B20 или DS18S20;

2. снижено время перезаписи в EEPROM(если выполнилось условие для перезаписи) с 5 минут, до 1 минуты.

3. увеличена частота мерцания точки;

Готовая плата отлично поместилась в китайский будильник (рисунки 8, 9).

Термометр на микроконтроллере PIC16F628A в китайском будильнике

Рисунок 8 – Вся начинка в китайском будильнике

Термометр на микроконтроллере PIC16F628A в китайском будильнике

Рисунок 9 - Вся начинка в китайском будильнике

Видео - Работа термометра на PIC16F628A

И так подведем итоги…. В процессе разработки получился термометр на распространенном микроконтроллере PIC16F628A. Термометр оснащен функцией памяти максимальной/минимальной измеренных температур, память, можно сбросить. Для записи в энергонезависимую память выбран щадящий режим. В прошивку не вложена реклама. Легким нажатием на кнопку можно проверить самую максимальную/минимальную измеренную температуру. Термометр автоматически определяет тип, наличие и исправность датчика. Очень легко можно заменить индикатор с ОК на индикатор с ОА. Схема термометра не содержит дефицитных деталей и проста в повторении. В схеме применяются датчик температуры DS18B20 или DS18S20, микроконтроллер PIC16F628А.


--> -->

--> Ваш браузер
chrome 27.0.1453.116


УМ-АЦП1 – универсальный многоканальный аналогово-цифровой преобразователь (версия 1).
УМ-АЦП1 может использоваться для:

мониторинга напряжения на входах;
контроля крайних значений;
регистрации показаний;
управления выходами (нагрузкой).

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

Предел измерения 0-5 В постоянного напряжения, используем микроконтроллер PIC16C71. Схема подключается к COM порту (по умолчанию com1).


Схема представляет собой простой Mp3 плеер на картах пямяти SD и ММС (до 1GB)!

Плеер состоит из mp3-декодера VS1011 (VS1001), контроллера PIC16F73 и собствено карты пямяти.

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

Напряжение питания: 3 В
Средний потребляемый ток: 35 ма
Носитель информации: MMC flash card, SD (mini/micro), FAT16
Формат файлов: MPEG 1,2 Layers I,II,III; 2.5 Layer III
Битрейт: до 256kbps, в т.ч. VBR


В 2008 году в журнале Elektronika dla Wszystkich №5, была опубликована статья о анализаторе спектра, прошивка для контроллера была (возможно и есть) на сайте этого журнала. Однако о данном проекте знают не многие. Цель данной статьи поделиться материалом, показать как все работает.

И так, краткие технические характеристики:
Индикация частот: 31Hz, 62Hz, 125Hz, 250Hz, 500Hz, 1kHz, 2kHz, 4kHz, 8kHz, 16kHz
Размер матрицы - 10х10
Возможные режимы: Точка, линия, регистрация пиков.
Напряжение питания - 12V
Потребляемая мощность - Зависит от используемых светодиодов в матрице.
Тип входящего сигнала: Линейный стерео / линейный моно

Как уже ясно из описания - анализатор имеет 4 режима индикации: Линия (столб) с индикацией пиков и без, и "точка", так же с индикацией пиков и без.

Два различных входа: стерео, через интегрированный на плате микшер и моно.


Данный проект родился в процессе изучения мной принципов работы интерфейса 1-wire. Для измерения температуры в этом проекте используются широко распространенные датчики фирмы "Dallas Semiconductor" типа DS18B20. Устройство способно работать с одним или двумя датчиками. Предполагается использование термометра для домашних целей, где один датчик измеряет температуру в комнате, а второй измеряет температуру на улице. Индикация значений температуры осуществляется с помощью знакосинтезирующего ЖКИ дисплея на базе контроллера HD44780 или его аналогов.


В Интернете полно схем цифровых термометров и эта очередная схема по функциональности ничем не выделяется. Но каждый (или почти каждый) программист микроконтроллеров хотя бы один раз сталкивается с задачей написать цифровой термометр. Это может быть конкретное устройство, а может быть учебный пример.
Предел измерения термометра от -55,0°С до +125,0°С. Датчик DS18B20 оцифровывает температуру с шагом 0,0625°С. На индикаторе результат измерения выводится с точностью 0,1°С. Реально производитель заявляет от погрешности +/- 0,5°С в диапазоне от -10°С до +85°С.



Изначально данное устройство задумывалось только как электронный ключ на ИК лучах опять же для электронного дверного замка (тоже собственного изготовления). Но потом я захотел, чтобы устройство было более универсальным. В результате получился компактный брелок, выполняющий несколько функций:
1. Термометр в диапазоне от -55°С. до 125°С. с шагом 0,1°С;
2. Считыватель и эмулятор электронных ключей - таблеток DS1990 (память на 10 штук);
3. Дистанционный пульт управления на ИК лучах (реализована только команда "Сделать снимок") для цифровых фотокамер "Pentax";
4. Светодиодный фонарик.

Вспомогательные функции:
1. Контроль напряжения батареи питания;
2. Цифровая регулировка яркости индикатора;
3. Протокол MODBUS-RTU для связи с ПК.


Давно у меня родилась идея сделать USB термометр, однако нужды не было, и идея покоилась. Както у друга в гостях заметил пару USB флешек. Одна была дохлая и досталась мне нахаляву. С недавнего времени постоянно за ними охочусь, т.к. в большинстве случаев сгорает контроллер, а NAND flash живая + SMD кварц. А такое на дороге не валяется.
Так вот, с этой флешки я поимел: SMD кварц на 12 МГц, USB штекер на плату и маленький корпус, а также развитие идеи USB термометра.

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

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

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

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

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

Статус активации реле отображается индикацией точки между фактической и контролируемой температурой.

Предел измерения влажности: 20-80% ( ±5%)
Напряжение питания: 3-5,5V
Опрос датчика ~ 1 раз в 2 секкунды.



Ниже в архиве содержится два варианта прошивок, для дисплея 1602 и для 0802.


Обновление от 30.06.2012

Обновил прошивки, теперь надпись "Wlajnost" заменена на "Влажность", в другой прошивке есть возможность измерения температуры (датчик DHT11 это позволяет), скрины ниже:




0
0

Температура: 0С
Влажность: 1% Всё время, ничего не измеряет.

На частоте 16МГц заработала схема.

0

Делал схемку с АВР проект ру с использованием этого датчик и ВМР85 на базе контроллера Мега 64. Почти метеостанция получилась, Меряет температуру, влажность и давление воздуха.
От

0

Интересно а с DHT22 тоже работать будет? DHT22 вроде по точее да и имеет схожий интерфейс связи с микроконтроллером.

0

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

Данное устройство - двухканальный термометр, термостат, терморегулятор собран на микроконтроллере 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:

Программа двухканального термостата (терморегулятора) на 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:

Termostat 2 kanala OK_HEX (13,5 KiB, 39 972 hits)

Termostat 2 kanala EEPROM_HEX (91 bytes, 1 089 hits)

Установка FUSE-битов

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

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

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

Читайте также: