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