Не работает IR приёмник
Я собрал схему из стандартного IR приёмника, пищалки и реле. вся суть в том, что тогда, когда я нажимаю кнопку на пульте, не выполняется прописанное мной условие:
if (ir_rx_results.value == 16724175){
digitalWrite(2,HIGH);
}
if (ir_rx_results.value == 16718055){
digitalWrite(2,LOW);
}
Полный код:
#include <IRremote.h>
#include <NewTone.h>
IRrecv ir_rx(8);
decode_results ir_rx_results;
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
ir_rx.enableIRIn();
NewTone(4, 1300, 50);
delay(6000);
NewTone(4, 1300, 1000);
delay(4000);
digitalWrite(2,HIGH);
delay(4000);
digitalWrite(2,LOW);
}
void loop(){
if (ir_rx.decode(&ir_rx_results)) {
if (ir_rx_results.value == 16724175){
digitalWrite(2,HIGH);
}
if (ir_rx_results.value == 16718055){
digitalWrite(2,LOW);
}
}
}
P.S. Плата: Arduino Uno, Реле: JQC-3FF-S-Z (На печатной плате с светодиодом).
Реле на пине 2, пищалка на 4, IR приёмник на 8.
Ответы (1 шт):
Автор решения: Герман Борисов
→ Ссылка
Судя по примерам из библиотеки IRremote в цикле опроса и ожидания пропущен вызов resume()
void loop(){
if (ir_rx.decode(&ir_rx_results)) {
if (ir_rx_results.value == 16724175){
digitalWrite(2,HIGH);
}
if (ir_rx_results.value == 16718055){
digitalWrite(2,LOW);
}
ir_rx.resume(); // <-- вот тут
}
}