Двухпозиционный (ON/OFF) контроллер с датчиком TMP35 |
Это простейшая система управления подогревом (включить/выключить), которая использует в качестве измерителя температуры датчик TMP35. ![]() Двухпозиционный (ON/OFF) контроллер Что может данная система управления. Она включает и выключает подогреватель при заданных температурах. Выдает сигнализацию по высокой и низкой температуре. Все события выводятся на LCD-дисплей. Система позволяет настраивать все необходимые параметры и записывать их в память Arduino. В системе есть полностью ручной режим (включение/выключение). СОСТАВ СИСТЕМЫPLC Arduino UNO с шилдом Sensor Shield v 5.0 (питание 7-12 В постоянного тока), LCD-дисплей с шиной I2C, DC-DC конвертер для питания реле и дисплея, реле включения и выключения подогревателя и реле сигнализации, кнопочный пост с тремя кнопками и температурный датчик TMP35. Немного о самом датчике TMP35. Главный его плюс - это удобная зависимость выходного напряжения от температуры : изменение в 1ºC дает 10 мВ. При чем 0ºC - это 0 мВ, 25ºC - 250 мВ, 100ºC - 1000 мВ и т.д. То есть этот датчик может работать "из коробки", его не нужно калибровать и настраивать. Достаточно в скетче прописать переводной коэффициент из напряжения в градусы Цельсия в зависимости от опорного напряжения. В этом проекте я выбрал опорное 1,1 В, снизив диапазон замера до 110ºC, но зато подняв точность. Что касается эксплуатационных характеристик, то они не блещут. Этот датчик, как и MF52, больше подходит для замеров температуры внутри помещений и устройств, где обеспечены "комфортные" внешние условия и не нужен большой диапазон. Также стоит отметить сильное влияние электромагнитных наводок на точность замера. И еще одна неприятная вещь, возникшая при создании этой системы управления. Изначально в качестве датчика температуры была использована микросхема LM35 в корпусе TO-92. Но все купленные мной датчики этого типа оказались подделками - под их видом продавались транзисторы с перебитой маркировкой. Пришлось вместо LM35 взять его прямой аналог TMP35. Учитывая это, прежде, чем подсоединять LM35 или TMP35 к Arduino, обязательно проверьте их мультиметром. Датчик должен показывать 10 мВ на 1ºC, то есть при комнатной температуре 24ºC на тестере будет 240 мВ. |
КАК РАБОТАЕТ |
При подаче питания на Arduino контроллер замерит текущую температуру датчика. При снижении температуры ниже заданной минимальной контроллер подаст питание на реле включения подогревателя, а при превышении заданной максимальной выключит реле. В случае, если текущая температура уйдет за пределы заданной минимальной или максимальной уставки, будет подано питание на реле сигнализации. При неисправности термодатчика вы можете переключиться в ручной режим и сами включать и выключать подогреватель. ![]() Модуль датчика TMP35 |
КНОПКИ УПРАВЛЕНИЯ |
Управлять системой можно с помощью трех кнопок : НАСТРОЙКИ, ВВЕРХ и ВНИЗ. Рассмотрим их функции подробно : Кнопка НАСТРОЙКИПри нажатии этой кнопки вы попадете в меню настроек и будете циклично переходить по пунктам меню. После последнего пункта меню вы снова вернетесь на основной экран (показания температуры). Изменение параметров осуществляется кнопками ВВЕРХ и ВНИЗ. Все цифровые параметры имеют верхнюю и нижнюю границы, за которые вы выйти не сможете. Изменение цифровых параметров сразу принимается системой, подтверждение не нужно. Обратите внимание, верхнюю и нижнюю границы, а также значение по умолчанию вы можете сами изменять в скетче. Пройдемся по пунктам меню Настройки.
Кнопки ВВЕРХ-ВНИЗЭтими кнопками меняются значения параметров. |
ИНДИКАЦИЯ LCD |
|
ПОДКЛЮЧЕНИЕ |
Здесь приведено соединение всех элементов системы управления, Arduino (через шилд) и самого подогревателя. В виде схемы подключение представлено ниже. ![]() Двухпозиционный (ON/OFF) контроллер Плата Arduino и Sensor-shield
ПодогревательНастоятельно рекомендуется подключать подогреватель через контактор, катушку которого питать от реле системы. Реле включения/выключения подогревателя : COM - источник питания с напряжением аналогичным катушке контактора подогревателя, NO - клемма катушки контактора подогревателя (например А1). Минусовой или нулевой провод контактора можно оставить штатный. ![]() Схема подключения подогревателя |
ПЛАТА ДЛЯ ДАТЧИКА |
Для удобства использования датчика TMP35 вы можете собрать небольшую плату. Схема монтажа представлена ниже. ![]() Схема пайки датчика температуры на макетной плате Примечания :
|
ЧТО НУЖНО ДЛЯ ПРОЕКТА |
|
ВОЗМОЖНЫЕ ПРОБЛЕМЫ |
Главная проблема, возникшая при полевых испытаниях, большая чувствительность Arduino к электромагнитным полям (плата зависает). Это явление возникает при коммутации через реле токов переменного напряжения 220 В и более. В этом случае вынесите реле К1 на расстояние не менее полуметра от платы. Еще больше это относится к TMP35. Так как на выходе с термодатчика мы имеем малые напряжения, то любые наводки сказываются на точности замера. С увеличением расстояния от датчика до PLC ситуация ухудшается. Есть разные способы решения этой проблемы (они описываются в спецификации). Самое простое - поставить керамический конденсатор (как показано на схеме). |
СКЕТЧ |
Ниже представлен скетч системы управления. В этом окне он неудобочитаем, поэтому скачать его в формате ino вы можете по этой ссылке. Несколько слов про опорное напряжение и диапазон измерения датчика TMP35. Согласно спецификации он составляет +10ºC ... +125ºC. Далее встает вопрос выбора опорного напряжения. Здесь логика такая : при опорном 5 вольт вы сможете замерить температуру вплоть до +125ºC, но при этом цена деления будет составлять 0,488ºC/деление : 5В -> 5000 мВ -> 500ºC -> 1024 (градации при 10-битном АЦП Arduino UNO). Если использовать опорное 1,1 В, то максимальный замер уменьшится до +110ºC, но при этом разрешение повысится до 0,107ºC/деление. Сами решайте, что для вас важней : диапазон или разрешение. Для работы этого скетча вам понадобятся дополнительные библиотеки :
Если есть возможность, проверьте эти библиотеки на наличие обновлений. |
|