Термостат и термометр на 4 канала (Arduino UNO, 1602А, LM325, КТ503)

Принципиальная схема самодельного четырехканального термостата с отображением температур, построен на основе Arduino UNO, LM325 и с дисплеем 1602А, позволяет управлять четырьмя раздельными нагрузками.

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

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

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

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

Принципиальная схема термостата на Arduino UNO, LM325 с дисплеем 1602А

Рис. 1.Принципиальная схема термостата на Arduino UNO, LM325 с дисплеем 1602А.

В отличие от первой схемы (Л.1) здесь присутствуют четыре транзисторных ключа, нагруженных на обмотки реле К1-К4, управляющие четырьмя различными нагревательными устройствами (Н1-Н4). Управляющие команды на эти ключи поступают от четырех цифровых портов D9-D12 платы ARDUINO UNO.

Программа

Программа приведена в таблице 1.

Таблица 1.

исходный код программы для термостата

Первое отличие в том, что заданы порты для управления нагревателями. Это порты D9-D12, заданы они здесь:

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

Можно выбрать другие свободные цифровые порты, после подключения индикатора остались еще D8 и D13. Но автор выбрал именно эти: D9, D10, D11, D12. Второе отличие в том, что для управления нагревателями используется компараторная функция if. В строках:

if(temp < -15)digitalWrite(12, HIGH);

if(temp > -15)digitalWrite(12, LOW);

if(tempi < 1)digitalWrite(11, HIGH);

if(tempi > 1)digitalWrite(11, LOW);

if(temp2 < 20)digitalWrite(10, HIGH);

if(temp2 > 20)digitalWrite(10, LOW);

if(temp3 < 10)digitalWrite(9, HIGH);

if(temp3 > 10)digitalWrite(9, LOW);

В этих строках указывается при какой температуре, какой логический уровень должен быть на соответствующем порту. Например, при температуре первого датчика (Т1) ниже -15°С на порту D12 будет логическая единица. При температуре второго датчика (Т2) ниже 1°С на порту D11 будет логическая единица.

При температуре третьего датчика (ТЗ) ниже 20°С на порту D10 будет логическая единица. При температуре четвертого датчика (Т4) ниже 10°С на порту D9 будет логическая единица. Конечно, температуры можно задать и совсем другие, - любые, которые нужны для конкретного применения данного прибора.

Более того, уже в готовом устройстве, при необходимости их легко изменить. Для этого нужно подключить персональный компьютер к USB-порту платы ARDUINO UNO и загрузить программу с другими данными по температурным порогам. В принципе, для этого можно предусмотреть на корпусе готового прибора разъем USB.

Обычно, в «типовом» терморегуляторе есть петля гистерезиса, то есть, цепь, которая создает разницу между тепера-турой включения нагревателя и температурой его выключения. Это нужно для того чтобы нагреватель включался / выключался не очень часто. Особенно это важно, если нагревателем управляет электромагнитное реле.

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

delay(3000);

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

Детали

Электромагнитные реле К1-К4 можно применить любые с обмотками на 12V и контактами, достаточно мощными для управления конкретными нагревателями.

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

Каравкин В. РК-08-17.

Литература: 1. Каравкин В. - Четырехканальный термометр на ARDUINO UNO, РК-06-17.

2 585 На микроконтроллерах
arduino микроконтроллер термостат термометр термореле
Написать комментарий:

cashback