Home News

Управление реле ардуино: скетч

24.08.2018

видео Управление реле ардуино: скетч

Ардуино. Контроль температуры. Видеответ Владимиру Афанасьеву.

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



Простой вариант скетча управления реле

Схема подключения

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


Arduino и 16 реле управление с телефона

Скетч для работы с реле

/* * Скетч для управления реле с помощью ардуино * Используем реле 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); }

Скетч управления реле с датчиком движения

В реальных проектах изменение состояния реле должно происходить в ответ на какую то реакцию среды. Например, в ответ на сигнал сработавшего датчика движения можно включить свет, замкнув цепь с помощью реле. В данном скетче мы рассмотрим такой вариант подключения.


Подключение PIR датчика движения к реле

Схема подключения реле

Следует понимать, что в реальных проектах обходятся вообще без ардуино — просто подключая сигнальный выход датчика к реле.

Пример скетча

В данном примере мы добавим в цикл loop проверку состояния PIR датчика с помощью функции digitalRead (). Если мы получаем HIGH, то это означает сработку датчика и мы выполняем действие — включаем реле. Если к нему присоединить лампочку, то она загорится. Но, как и в прошлом примере, можно просто послушать щелчки.

/* Скетч для управления реле ардуино с помощью 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); // Проверяем значения один раз в секунду. }
rss