我正在尝试创建一个可以接收IR代码的简单程序,同时在按下按钮时发送另一个IR代码。
我的问题是:红外线接收器只能在我按下按钮之前工作。如果按下按钮,“第一个if-line”将不再起作用。
#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 2; //Transmitter pin (input)
IRrecv irrecv(RECV_PIN); //TP-stuff
decode_results results; //TP-stuff
void setup() {
pinMode(9, INPUT); //knapp 6, LEDIG
pinMode(3, OUTPUT); //IRSEND
pinMode(2, INPUT); //tramsmititer pin
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver //TP
}
void loop() {
if (irrecv.decode(&results)) { //Transmitter IR
Serial.println(results.value, HEX); //Transmitter IR
irrecv.resume(); // Receive the next value //Transmitter IR
} else if (digitalRead(9) == LOW) {
irsend.sendNEC(0x20DF8679, 32); //LEDIG
Serial.println("LEDIG knapp");
digitalWrite(9, HIGH);
delay(400);
}
}
答案 0 :(得分:0)
发送和IR消息后再次启用IR接收器:
else if (digitalRead(9) == LOW) {
irsend.sendNEC(0x20DF8679, 32); //LEDIG
Serial.println("LEDIG knapp");
digitalWrite(9, HIGH);
delay(400);
irrecv.enableIRIn();
}