#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
if(results.value==16754775){
digitalWrite(13, 150);
digitalWrite(12,150);
}
if(results.value==16738455){
digitalWrite(13, 0);
digitalWrite(12, 254);
}
if(results.value==16750695){
digitalWrite(13,0);
digitalWrite(12,0);
}
if(results.value==16756815){
digitalWrite(13, 254);
digitalWrite(12, 0);
}
irrecv.resume();
}
}
这是我的程序,12,13接的分别是左右两个马达,现在问题是,只接受按下去的第一个信号并成功执行,按下第二个信号后串口监视器显示的数字就不是按键对应的数字,而是一些随机的数字,导致马达不能正常工作。把中间关于马达的if程序全删了,串口监视器就可以正常工作,第二个信号正常显示既定的数字,求问大神们为什么
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
if(results.value==16754775){
digitalWrite(13, 150);
digitalWrite(12,150);
}
if(results.value==16738455){
digitalWrite(13, 0);
digitalWrite(12, 254);
}
if(results.value==16750695){
digitalWrite(13,0);
digitalWrite(12,0);
}
if(results.value==16756815){
digitalWrite(13, 254);
digitalWrite(12, 0);
}
irrecv.resume();
}
}
这是我的程序,12,13接的分别是左右两个马达,现在问题是,只接受按下去的第一个信号并成功执行,按下第二个信号后串口监视器显示的数字就不是按键对应的数字,而是一些随机的数字,导致马达不能正常工作。把中间关于马达的if程序全删了,串口监视器就可以正常工作,第二个信号正常显示既定的数字,求问大神们为什么