При изучении Arduino, часто возникают разнообразные идеи. Одна из самых распространённых - это беспроводное управление несколькими реле. Для включения различной нагрузки: открывать гаражные ворота, включать и выключать электроприборы и управление освещением. Но как быть, если знания не хватает для реализации идеи. Для этого отлично подойдёт радиопульт, в виде брела, который продается вместе с приемником HY-DJM-5V. Почему данный пульт подойдёт для новичка? Это связано с простотой подключения и использования радиопульта с приёмником HY-DJM-5V в Arduino проектах. Данный пульт и приемник я использовал в управлении светом в проекте «Arduino управление светом с 3 мест: Пульт ДУ + Радиопульт + Переключатель».
Для урока понадодиться:
Описание радиопульта и приемникаHY-DJM-5V.
В интернете не так много информации по данному радиопульту. Есть источники, в которых говорится, что он работает на частоте 433 МГц. В других источниках говорится, что работает на частоте 315 МГц. Для нас нет большой разницы, на какой частоте работает пульт и приемник. Это не помешает нам сделать отличный проект на Arduino.
Характеристики пульта:
- частота передачи 315 Мгц,
- количество каналов 4,
- дальность действия до 50 м
- элемент питания 23 a / 12 v
Не смотря на то, что обещают до 50 метров дальность действия, мой пульт позволяет управлять только до 20 м. при прямой видимости, за стеной уже не работает. Рассчитал по формуле, и припаял к приемнику спиралевидную антенну, сигнал стал более устойчивым, но радиус действия практически не изменился. Возможно, что я неправильно рассчитал антенну, но формула простая, и ошибиться я не мог.
Разобрал я пульт, чтобы посмотреть, из чего он состоит. Пульт сделан на микросхеме SC 2262.
Схема пульта дистанционного управления на микросхеме SC 2262.
Характеристики приемника HY-DJM-5V:
- частота приема - 315 Мгц,
- количество каналов – 4,
- режим – "включен", пока нажата кнопка,
- тип выхода - открытый коллекто
Схема приемника HY-DJM-5V.
Так приемник HY-DJM-5V выглядит в живую.
Кодирование сигнала.
Для того, чтобы ваш сосед с таким же радиопультом не смог открыть ваш гараж, или включать и выключать свет, на пульте и на приемнике есть система кодирования. Рядом со свободными ножками приемника и передатчика есть 2 контактные полоски, одна «+» вторая «-».
И для кодирования сигнала свободные ножки припаиваем к минусу или плюсу, так, чтобы на приемнике и передатчике эти перемычки были одинаковые.
Использование радиопульта и приёмника HY-DJM-5V без Arduino.
На фото приведен пример использования приемника HY-DJM-5V без Arduino. Мы можем подключить приемник к источнику питания 5В, и управлять нагрузкой. На схеме ниже подключены четыре светодиода. А как мы знаем, вместо светодиодов можно, без проблем, подключить пятивольтовое реле.
Схема подключения приемника HY-DJM-5V без Arduino будет вот такой.
Использование приемника без Arduino имеет большой минус. Светодиод светится, пока нажата кнопка на радиопульте. Поэтому, в данную схему добавит Arduino NANO.
Управление реле, с помощью радиопульта с приемником HY-DJM-5V и Arduino NANO.
Как мы поняли из примера выше, нам нужно в схему добавить Arduino. Схема подключения HY-DJM-5V к Arduino NANO будет следующая:
Код для управления 4 реле, с помощью приемника HY-DJM-5V и Arduino NANO.
Как и писал в начале статьи, код получается достаточно простой. Даже проще, чем управление светодиодом с помощью кнопки. Тут не нужно бороться с дребезгом. Но задержку нужно сделать, потому что, при большом расстоянии между пультом и приемником, сигнал бывает не стабильным, и реле будет несколько раз подряд включаться и выключаться.
// Радиопульт с приемником HY-DJM-5V.
// https://portal-pk.ru
//переменные для подключении 4 реле //
#define RELAY1 6
#define RELAY2 7
#define RELAY3 8
#define RELAY4 9
// переменные для подключения 4 контактов с приемника HY-DJM-5V //
#define RADIO_PIN1 2
#define RADIO_PIN2 3
#define RADIO_PIN3 4
#define RADIO_PIN4 5
// переменные для хранения состояния реле //
boolean statusRelay1 = false;
boolean statusRelay2 = false;
boolean statusRelay3 = false;
boolean statusRelay4 = false;
void setup() {
//инициализировать пины реле как выход //
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
// пины приемника на вход //
pinMode(RADIO_PIN1, INPUT);
pinMode(RADIO_PIN2, INPUT);
pinMode(RADIO_PIN3, INPUT);
pinMode(RADIO_PIN4, INPUT);
// инициализируем работу с монитором порта
// и выведем надпись "Relay Ok!"
Serial.begin(9600);
Serial.println("Relay Ok!");
}
void loop() {
//Если пришел сигнал
//выводим в монитор порта информацию что сработало реле 1 "Relay 1".
if ( digitalRead(RADIO_PIN1) == HIGH) {
Serial.println("Relay 1");
//инвертируем статус реле //
statusRelay1 = !statusRelay1;
// отправляем статус на включения или выключения //
digitalWrite(RELAY1, statusRelay1);
// подождем 100 мс //
delay(100);
}
if ( digitalRead(RADIO_PIN2) == HIGH) {
Serial.println("Relay 2");
statusRelay2 = !statusRelay2;
digitalWrite(RELAY2, statusRelay2);
delay(100);
}
if ( digitalRead(RADIO_PIN3) == HIGH) {
Serial.println("Relay 3");
statusRelay3 = !statusRelay3;
digitalWrite(RELAY3, statusRelay3);
delay(100);
}
if ( digitalRead(RADIO_PIN4) == HIGH) {
Serial.println("Relay 4");
statusRelay4 = !statusRelay4;
digitalWrite(RELAY4, statusRelay4);
delay(100);
}
}
Описание кода.
Создаем переменные для подключения 4 реле, и переменные для подключения 4 контактов с приемника HY-DJM-5V.
//переменные для подключении 4 реле //
#define RELAY1 6
#define RELAY2 7
#define RELAY3 8
#define RELAY4 9
// переменные для подключения 4 контактов с приемника HY-DJM-5V //
#define RADIO_PIN1 2
#define RADIO_PIN2 3
#define RADIO_PIN3 4
#define RADIO_PIN4 5
Дальше, нам нужно создать переменные для хранения состояния реле, чтобы мы могли включать и выключать реле, при нажатии на кнопку на радиопульте.
// переменные для хранения состояния реле //
boolean statusRelay1 = false;
boolean statusRelay2 = false;
boolean statusRelay3 = false;
boolean statusRelay4 = false;
В функции setup() нам нужно инициализировать пины реле как выход, а пины приемника на вход, для считывания поступающего сигнала с радиоприемника.
//инициализировать пины реле как выход //
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
// пины приемника на вход //
pinMode(RADIO_PIN1, INPUT);
pinMode(RADIO_PIN2, INPUT);
pinMode(RADIO_PIN3, INPUT);
pinMode(RADIO_PIN4, INPUT);
Также инициализируем работу с монитором порта, и выведем надпись "Relay Ok!", что означает, что у нас все работает, и можно начать управлять нашими реле.
// инициализируем работу с монитором порта
// и выведем надпись "Relay Ok!"
Serial.begin(9600);
Serial.println("Relay Ok!");
В основном цикле loop() будем проверять, по какому каналу пришел сигнал, для этого создадим 4 одинаковых условия для каждого канала.
//Если пришел сигнал
//выводим в монитор порта информацию что сработало реле 1 "Relay 1".
if ( digitalRead(RADIO_PIN1) == HIGH) {
Serial.println("Relay 1");
//инвертируем статус реле //
statusRelay1 = !statusRelay1;
// отправляем статус на включения или выключения //
digitalWrite(RELAY1, statusRelay1);
// подождем 100 мс //
delay(100);
}
if ( digitalRead(RADIO_PIN2) == HIGH) {
Serial.println("Relay 2");
statusRelay2 = !statusRelay2;
digitalWrite(RELAY2, statusRelay2);
delay(100);
}
if ( digitalRead(RADIO_PIN3) == HIGH) {
Serial.println("Relay 3");
statusRelay3 = !statusRelay3;
digitalWrite(RELAY3, statusRelay3);
delay(100);
}
if ( digitalRead(RADIO_PIN4) == HIGH) {
Serial.println("Relay 4");
statusRelay4 = !statusRelay4;
digitalWrite(RELAY4, statusRelay4);
delay(100);
}
Разберём работу по первому каналу. Если пришел сигнал, то выводим в монитор порта информацию, что сработало реле 1 "Relay 1".
if ( digitalRead(RADIO_PIN3) == HIGH) {
Serial.println("Relay 3");
...
}
Затем инвертируем статус реле, и отправляем статус на включение или выключение.
statusRelay3 = !statusRelay3;
digitalWrite(RELAY3, statusRelay3);
delay(100);
И подождем 100 мс, для того, чтобы наше реле не сработало 2 раза, как и писал выше.
Подключение модуля с 4 твердотельными реле к модулю HY-DJM-5V.
Не стал я убирать светодиоды с макетной платы и, параллельно с ними, подключил модуль с 4 твердотельными реле. Вот что получилось. Как видим, все работает отлично.
Схема подключения четырех реле к модулю HY-DJM-5V.
На схеме 2 модуля, на каждом по 2 обычных реле. Не нашел векторного изображения модуля с четырьмя твердотельными реле, поэтому схема получилась такая. Но принцип один и тот же.
Как видим, все отлично работает, и, используя пульт радиоуправления с приемником HY-DJM-5V, можно сделать и другие интересные проекты.
Появились вопросы или предложения, не стесняйся, пиши в комментарии!
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке.
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
|
Код для управления 4 реле, с помощью приемника HY-DJM-5V и Arduino NANO.ino | 2 Kb | 635 |
Скачать
Вы можете скачать файл.
|
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.