Управление нагрузкой с помощью ИК пульта и Arduino
В статье приведу пример управления нагрузкой с помощью ИК-пульта и Arduino UNO. При необходимости программу можно легко изменить, для управления сервоприводом или другом устройством при нажатии любой кнопки.
В статье приведу пример управления нагрузкой с помощью ИК-пульта и 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.
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
/* Тестировалось на 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-х канальный