Помогите, пожалуйста. Надо, чтобы при комбинации кнопок 1 и 2, т.е когда нажимается 12, включался светодиод.
Простите, неправильно написал. Надо, чтобы при комбинации кнопок 1 и 2(на пульте), т.е когда нажимается 12, Ик-приёмник получает эти данные, и включается светодиод.
Код (C++): #include "IRremote.h" IRrecv irrecv(11); // Указываем пин, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); // Выставляем скорость COM порта irrecv.enableIRIn(); // Запускаем прием } void loop() { if (irrecv.decode(&results)) // Если данные пришли { Serial.println(results.value, HEX); // Отправляем полученную данную в консоль irrecv.resume(); // Принимаем следующую команду } } HEX коды кнопок выложите сюда
Это точно? То, что мне нужно вы увидите в мониторе порта если загрузите эту программу и нажмете нужные кнопки)
Сделал выключение, если присланная команда не совпадает с тем, что нужно. С вас 100 рублей на киви или яндекс кошелек) Код (C++): #include <IRremote.h> IRrecv irrecv(11); // Указываем пин, к которому подключен приемник decode_results results; int command[2]={0, 0}; bool is_first=true; bool device_state; void setup() { Serial.begin(9600); // Выставляем скорость COM порта irrecv.enableIRIn(); // Запускаем прием pinMode(13, OUTPUT); } void loop() { if (irrecv.decode(&results)) // Если данные пришли { int button=results.value, HEX; if(is_first) { command[0]=button; is_first=false; } else { command[1]=button; is_first=true; if(command[0]==801 && command[1]==802) { device_state=true; } else { device_state=false; } } irrecv.resume(); // Принимаем следующую команду } digitalWrite(13, device_state); }
Когда нажата комбинация кнопок 1 и 2. Если 2 и 1 то светодиод включаться не должен. И если нажата только одна кнопка, то светодиод НЕ ВКЛЮЧАЕТСЯ!!!
Во-первых, я бы посоветовал вам сменить тон, которым вы разговариваете. Вам тут никто и ничем не обязан, чтобы игнорировать нарушения вами правил приличия и хорошего тона. Во-вторых, ставьте тз четче, додумывать за вас никто не будет. Желаю удачи в поисках исполнителя.
@Vetrinus, по-моему, требуется еще проверять промежуток времени между нажатиями. Например, между нажатиями меньше 0,5 сек - двойное значение, больше одиночное значение. Что за HEX? Код (C++): int button=results.value, HEX;