● 6.2. Подключение блока реле к плате Arduino MEGA

Опубликовано: 23.01.2018

Рассмотрим подключение Relay Shield к плате Arduino MEGA.  Relay Shield мы будем использовать для включения/выключения света для освещения растений, вентилятора, насоса для полива растений. Включения/выключения вентилятора и помпы будет осуществляться в зависимости от значений температуры воздуха (вентилятор) и влажности почвы (мембранный вакуумный насос (см. рис. 6.2)).  Мембранный вакуумный насос будем использовать для полива почвы. Он предназначен для всасывания воды из емкости. Рабочее напряжение 12В, потребляемый рабочий ток  0.5 – 0.7А, расход 1.5 л/мин.


 
Рис. 6.2. Мембранный вакуумный насос

Управление светом будем осуществлять с сенсонного экрана  TFT 2.4" Shield (рассмотрим это в главе 6.3).
Схема соединений представлена на рис. 6.3.

Внимание!
Работа с высоким напряжением опасна для вашего здоровья и жизни. На плате существуют области, прикосновение к которым приведёт к поражению электрическим током. Это винты контактных колодок и места пайки выводов контактных колодок и реле. Не работайте с платой, если она подключена к бытовой сети. Для готового устройства используйте изолированный корпус.
Если вы сомневаетесь как подключить к реле электроприбор, работающий от общей сети 220 В и у вас есть сомнения, вопросы на тему того как это делается, остановитесь: вы можете устроить пожар или убить себя. Убедитесь, что у вас в голове — кристальное понимание принципа работы устройства и опасностей, которые связаны с высоким напряжением.



 
Рис. 6.3. Схема подключений relay shield к плате Arduino MEGA

Загрузим на плату Arduino MEGA скетч включения/выключения вентилятора и насоса в зависимости от данных температуры воздуха и влажности почвы.
Необходимо внести изменения в существующий скетч. Во первых добавляем массив пинов для подключения реле (пусть их будет 8, с запасом под расширения):

int pinrelays[]={27,29,31,33,35,37,39};

А также массив для хранения данных реле datarelays[] (0 – выключено, 1 –включено) и массив в котором будем хранить фактически подключенные устройства aktiverelays[] (1 – подлючено, 0 – выключено):

int aktiverelays[]={1,1,1,1,1,0,1,0};
int datarelays[]={0,0,0,0,0,0,0,0};

Необходимо добавить и константы в файл defines.h

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

void loop() {   
   …………
   // установка значений реле
   // вентилятор
   if(aktivesensors[1]==1 && datasensors[1]<999 
         && datasensors[1]>LIMIT_DS18B20MAX) {
      digitalWrite(pinrelays[2],RELAY_ON);
      datarelays[2]=1;
   }
   else {
      digitalWrite(pinrelays[2],RELAY_OFF);
      datarelays[2]=0;
   }
   // помпа
   if(aktivesensors[2]==1 && datasensors[2]<999 
         && datasensors[1]>MAXVALUESOILMOISTURE 900) {
      digitalWrite(pinrelays[1],RELAY_ON);
      datarelays[1]=1;
   }
   else {
      digitalWrite(pinrelays[1],RELAY_OFF);
      datarelays[1]=0;
   }
……..
}



После загрузки скетча на плату Arduino у Вас будет обеспечено автоматическое включение/выключение вентилятора и автоматический полив растений. Теперь рассмотрим отображение данных на дисплее и управление включением/выключением света (реле 0) с помощью touch дисплея.

Главное меню

Каталог

Полезные ссылки

Цена
от
до