В этой статье приведены разные варианты управления реле в скетчах Arduino. Примеры тестировались на Arduino Uno, но они могут быть легко применимы для работы на других платах Arduino: Uno, Mega, Nano.
Простой вариант скетча управления реле
Схема подключения
В данном примере используется стандартный модуль реле Arduino, на котором уже установлены все необходимые элементы для подключения к Arduino. Схема подключения очень проста: модуль реле присоединяется к 5 пину платы Arduino. При этом для простоты мы можем даже не присоединять реальную нагрузку — реле будет щелкать при каждом изменении состояния, мы услышим эти щелчки и будем понимать, что скетч работает.

Скетч для работы с реле
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
/* * Скетч для управления реле с помощью ардуино * Используем реле SONGLE SRD-05VDC * Реле ОТКРЫВАЕТСЯ при подаче низкого уровня сигнала (LOW) на управляющий пин. * Реле ЗАКРЫВАЕТСЯ при подаче высокого уровня сигнала (HIGH) на управляющий пин. * * В данном примере мы просто открываем и закрываем реле раз в 5 секунд. * * PIN_RELAY содержит номер пина, к которому подключено реле, которым мы будем управлять * * В функции setup устанавливаем начальное положение реле (закрытое) * Если к реле будет подключена нагрузка(например, лампочка), то после запуска скетча она будет включаться и выключаться каждые 5 секунд * * Для изменения периода мигания нужно изменить параметр функции delay(): поставив 1000 миллисекунд, выполучите 1 секунду задержки * * В реальных проектах реле включается в ответ на обнаружение каких-либо внешних событий через подключение датчиков * */ #define PIN_RELAY 5 // Определяем пин, используемый для подключения реле // В этой функции определяем первоначальные установки void setup() { pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход digitalWrite(PIN_RELAY, HIGH); // Выключаем реле - посылаем высокий сигнал } void loop() { digitalWrite(PIN_RELAY, LOW); // Включаем реле - посылаем низкий уровень сигнала delay(5000); digitalWrite(PIN_RELAY, HIGH); // Отключаем реле - посылаем высокий уровень сигнала delay(5000); } |
Скетч управления реле с датчиком движения
В реальных проектах изменение состояния реле должно происходить в ответ на какую то реакцию среды. Например, в ответ на сигнал сработавшего датчика движения можно включить свет, замкнув цепь с помощью реле. В данном скетче мы рассмотрим такой вариант подключения.
Схема подключения реле
Следует понимать, что в реальных проектах обходятся вообще без ардуино — просто подключая сигнальный выход датчика к реле.
Пример скетча
В данном примере мы добавим в цикл loop проверку состояния PIR датчика с помощью функции digitalRead(). Если мы получаем HIGH, то это означает сработку датчика и мы выполняем действие — включаем реле. Если к нему присоединить лампочку, то она загорится. Но, как и в прошлом примере, можно просто послушать щелчки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/* Скетч для управления реле ардуино с помощью PIR датчика PIN_RELAY содержит номер пина, к которому подключено реле, которым мы будем управлять PIN_PIR содержит номер пина с подключенным PIR-сенсором В функции setup устанавливаем начальное положение реле (закрытое) В теле функции loop проверяем наличия высокого уровня сигнала от датчика с помощью функции digitalRead Для отладки текущее значение датчика выводим в окно монитора порта */ #define PIN_RELAY 8 // Определяем пин, используемый для подключения реле #define PIN_PIR 5 // Определяем пин, используемый для подключения PIR-датчика // В этой функции определяем первоначальные установки void setup() { Serial.begin(9600); pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход digitalWrite(PIN_RELAY, HIGH); // Выключаем реле - посылаем высокий сигнал } void loop() { int val = digitalRead(PIN_PIR); // Считваем значение с датчика движения в отдельную переменную if (val == HIGH) { Serial.println("Датчик сработал"); digitalWrite(PIN_RELAY, LOW); // Включаем реле - посылаем низкий уровень сигнала } else { digitalWrite(PIN_RELAY, HIGH); // Отключаем реле - посылаем высокий уровень сигнала } delay(1000); // Проверяем значения один раз в секунду. } |
можете изготовить скетч, и схему подключения модулей, дисплей управление и.т.д.
Добрый день!
Можете по подробней описать какой скетч Вам необходим?
Добрый вечер, вы мне не поможете собрать скетч?
Имею два датчика температуры один в доме, другой на улице (оба DHT22), также два реле (одно из которых нужно прицепить к датчику температуры тот что в доме (чтобы при заданной температуре вкл. выкл. реле). Второе реле просто вкл. и выкл. из приложения blynk. Ну и естественно чтобы вся система работала в blynk. При отключении питания ардуино и подачи заново, настройки чтобы все сохранялись.