
В статье приведу пример управления нагрузкой с помощью ИК-пульта и Arduino UNO. При необходимости программу можно легко изменить, для управления сервоприводом или другом устройством при нажатии любой кнопки.
Управление нагрузкой с помощью ИК пульта и Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуль реле 4-о канальный x 1 шт.
► Модуля HX1838 с ИК пультом x 1 шт.
► Провод DuPont x 1 шт.
Описание:
В данном примере используется приемник HX1838, 4-х канальное реле и Arduino UNO. Для переключения реле, используется стандартный 21 кнопочный пульт, при нажатии кнопки 1, 2, 3, 4, 5, 6, 7, 8 переключается реле 1, 2, 3, 4, при необходимости можно использовать пульт от телевизора, кондера и так далее.
Подключение:
Первым делом, подключим приемник HX1838 к Arduino UNO, для этого крайний левый выход приемника подключаем к выводу 7 (Arduino UNO), средний вывод GND подключаем к GND (Arduino UNO) и крайний левый вывод 5В, подключаем к выводу 5В (Arduino). Теперь, осталось подключить 4-х канальное реле, для этого подключим выводы in1, in2, in3, in4 к выводам 3, 4, 5, 6. Так же подключаем питание.

Программа:
Приведенный ниже скетч будет переключать цифровые вывода 2, 3, 4, 5 в LOW при нажати кнопок 1, 3, 5, 7 и в положение HIGH при нажатии 2, 4, 6, 8.
/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 03.04.2021г.
*/
#include <IRremote.h> // Подключаем библиотеку IRremote
const int RECV_PIN = 6; // Указываем к какому выводу подключен IN
IRrecv irrecv(RECV_PIN);
decode_results results;
int in1 = 2; // Указываем вывод реле 1
int in2 = 3; // Указываем вывод реле 2
int in3 = 4; // Указываем вывод реле 3
int in4 = 5; // Указываем вывод реле 4
void setup()
{
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
Serial.begin(9600);
}
void loop()
{
if (irrecv.decode(&results))
{
switch(results.value)
{
case 0xFF30CF: // Кнопка "1"
Serial.println ("Relay 1 - ON");
digitalWrite(in1, LOW);
}
switch(results.value)
{
case 0xFF18E7: // Кнопка "2"
Serial.println ("Relay 1 - OFF");
digitalWrite(in1, HIGH);
delay(500);
}
switch(results.value)
{
case 0xFF7A85: // Кнопка "3"
Serial.println ("Relay 2 - ON");
digitalWrite(in2, LOW);
}
switch(results.value)
{
case 0xFF10EF: // Кнопка "4"
Serial.println ("Relay 1 - OFF");
digitalWrite(in2, HIGH);
}
switch(results.value)
{
case 0xFF38C7: // Кнопка "5"
Serial.println ("Relay 3 - ON");
digitalWrite(in3, LOW);
}
switch(results.value)
{
case 0xFF5AA5: // Кнопка "6"
Serial.println ("Relay 1 - OFF");
digitalWrite(in3, HIGH);
}
switch(results.value)
{
case 0xFF42BD: // Кнопка "7"
Serial.println ("Relay 4 - ON");
digitalWrite(in4, LOW);
}
switch(results.value)
{
case 0xFF4AB5: // Кнопка "8"
Serial.println ("Relay 1 - OFF");
digitalWrite(in4, HIGH);
}
irrecv.resume();
}
}
Для работы скетча необходимо установить одну библиотеку IRremote, установить ее можно через «Менеджер библиотек» или скачать в конце статьи.
Ссылки
Библиотека IRremote v.2.2.0
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Комплект проводов DuPont, 2,54 мм, 20 см
Модуль HX1838 с ИК пультом
Модуль реле 4-х канальный
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Модуль HX1838 с ИК пультом
Модуль реле 4-х канальный