Идея в том, чтобы сделать устройство, которое при получении команды с «левого» пульта ДУ отправляла необходимую для техники команду.
ниже код из видео
Схема подключения:
позже
Код:
#include <IRremote.h> #define POWER_KEY 0x40BF00FF // коды пульта ДУ #define VOLM 0x40BF7887 #define VOLP 0x40BFF807 #define CHP 0xC03FC03F #define CHM 0xC03F40BF #define SONY_POWER_KEY 0xA90 #define SONY_VOLM 0xC90 #define SONY_VOLP 0x490 #define SONY_CHP 0x90 #define SONY_CHM 0x890 int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); // приемник, на 11 ногу IRsend irsend; // светодиод, для UNO по умолчанию на 3 ногу decode_results results; void setup() { Serial.begin(9600); pinMode(12, OUTPUT); // питание приемника pinMode(13, OUTPUT); digitalWrite(12, LOW); digitalWrite(13, HIGH); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { // если пришла команда Serial.println(results.value, HEX); // для отладки irsend.enableIROut(38); // включаем перечу на 38кгц (хз сколько там по умолчанию) delay(10); for (int i = 0; i < 3; i++) { // в цикле, который крутится 3 раза if (results.value == POWER_KEY) irsend.sendSony(SONY_POWER_KEY, 12); // сверяем команду и если совпала отправляем от сони else if (results.value == VOLM) irsend.sendSony(SONY_VOLM, 12); //// техника сони понимает только с третьего раза else if (results.value == VOLP) irsend.sendSony(SONY_VOLP, 12); else if (results.value == CHP) irsend.sendSony(SONY_CHP, 12); else if (results.value == CHM) irsend.sendSony(SONY_CHM, 12); delay(40); } irrecv.resume(); // Receive the next value irrecv.enableIRIn(); // после отправки нужно заного включить прием } }