Реле позволяет электрическому сигналу или импульсу включать (или выключать) электрический ток. Для управления реле используется низкое напряжение или слабый ток, чтобы с его помощью управлять высоким напряжением и/или сильным током.
В электромеханическом реле ток протекает через катушку, которая действует как электромагнит, замыкающий (или размыкающий) контакты силовой части реле. Кроме электромеханических существуют и твердотельные реле использующие твердотельную электронику (без катушки и механических движущихся частей).
Внешний вид, назначение контактов
Для удобства управления и подключения к Arduino реле устанавливаются на платы, где, кроме самого реле, расположены контакты для подключения нагрузки и другие элементы (рис. M3.1). На одной плате могут размещаться несколько реле.

Рис. M3.1. Назначение контактов одноканальных модулей реле
Основные характеристики
| Наименование | Значение |
| Рабочее напряжение, В | 5 |
| Потребляемый ток при переключении контактов, мА | 5 |
| Потребляемый ток в состоянии ожидания, мА | 10 ÷ 13 |
| Рабочая частота, МГц | 13,56 |
| Размеры (L×W×H), мм | 50×26×18,5 |
| Максимальная нагрузка | AC 250 В/10 A DC 30 В/10 A |
Предупреждение
Модуль реле, входящий в набор, рассчитан на коммутирование небольших нагрузок. Вы можете подключать к нему бытовые приборы с рабочим напряжением 220 В, но нагрузка не должна превышать 3-х ампер (мощность до 660 Вт).
Имейте в виду, что мощность утюга составляет 1000÷1500 Вт, и поэтому такое реле не годится для создания устройства для включения/выключения утюга. Cуществуют специальные модули реле, рассчитанные на большие мощности.
Схема подключения

Рис. M3.2. Схема подключения реле
Программный код
Тестовая программа для включения и выключения лампочки через каждые 2 секунды приведена в листинге M3.1.
Листинг M3.1. Включение лампочки с помощью реле
#define relayPin 2 //номер пина для управления реле
void setup() {
pinMode(relayPin, OUTPUT); //настройка пина реле на выход
}
void loop() {
digitalWrite(relayPin, HIGH);// замыкаем реле
delay(3000); // ждем 3 секунды
digitalWrite(relayPin, LOW); // размыкаем реле
delay(3000); // ждем 3 секунды
}
«Умный горшок»
С помощь модуля реле можно создать систему автоматического полива растений в цветочном горшке. Для этого, кроме модуля реле, мы задействуем микронасос, помещенный в банку с водой, и датчик влажности почвы (рис. M3.3). Как только влажность почвы опускается ниже заданных значений, Arduino включает микронасос и выключает его, когда почва становится снова достаточно влажной.
Систему можно усложнить, добавив датчик глубины, чтобы сигнализировать об окончании воды в банке и недопустить сгорания микронасоса.
Схема подключения

Рис. M3.3. Система автоматического полива цветочного горшка
Программный код
Листинг M3.2. Система автоматического полива цветочного горшка
//определения
// пин аналогового выхода датчика уровня воды
#define pinWaterLevel A0
//пин аналогового выхода датчик влажности почвы
#define pinSoilMoisture A1
//пин реле для управление насосом
#define pinRelayPump 12
//константы
const int delayPumpBefore=2; //время полива (в секундах)
const int delayPumpAfter=30; //время после полива, чтобы
//земля пропиталась (в секундах)
const int minMoisture=600; //минимальный порог влажности почвы
// переменные
int aLevel = 0; // значение датчика уровня воды
int aMoisture = 0; // состояние датчика влажности почвы
int levels[3]={600,500,400}; //массив значений уровней воды
//установки
void setup() {
//объявляем пин реле для включения насоса как выход:
pinMode(pinRelayPump, OUTPUT);
//объявляем пины датчиков глубины и влажности почвы как входы:
pinMode(pinWaterLevel, INPUT);
pinMode(pinSoilMoisture, INPUT);
Serial.begin(9600);
}
void loop() {
// считываем значение датчика уровня воды
aLevel=analogRead(pinWaterLevel);
// считываем состояния датчика влажности почвы
aMoisture = analogRead (pinSoilMoisture);
Serial.println(aMoisture); //выводим для тестирования
delay(100);
// если почва сухая, и вода в банке есть, то включаем полив
if ((aMoisture >minMoisture)&&(aLevel>levels[2])) {
digitalWrite(pinRelayPump, HIGH); //включаем насос
delay(delayPumpBefore*1000); //задержка на полив
digitalWrite(pinRelayPump, LOW); //выключаем насос
delay(delayPumpAfter*1000); //задержка на слив воды из
//шланга после выключения насоса
}
else {
digitalWrite(pinRelayPump, LOW);
}
}
Для адаптации программы к конкретному цветочному горшку надо произвести небольшую «тонкую настройку» системы:
- во-первых, следует правильно установить время полива (delayPumpBefore), которое определяется паузой между включением и выключением насоса. Чем больше горшок, тем больше должна быть пауза и, как следствие, время полива;
- во-вторых, надо установить правильное время после полива (delayPumpAfter), чтобы земля успела пропитаться, и система не включила повторный полив. Трубку подачи воды при этом удобно разместить рядом с датчиком влажности почвы, чтобы земля в районе датчика сразу пропитывалась.









