红外控制单个led灯的闪烁问题
我用红外控制灯的闪烁和停止,1控制闪烁,5控制停止熄灭,但是按1键闪烁后按5就没有反应了(在串口监控中可以看见没有接收到5键的编码),并且一直闪烁成了死循环,只有按复位键恢复。我也从C语言中知道程序的一个特性之一就是有穷性,如果一直执行就会死机。但是在看一些视频中又能实现,会不会有一些新的方法呢?求教大神帮忙啊,附上代码:#include <IRremote.h>
int RECV_PIN = 11;
int LED_PIN=4;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(LED_PIN,OUTPUT);
}
void loop() {
if (irrecv.decode(&results))
{
if (results.value==16724175)
{
for(int i=0;i<2;i++)
{
digitalWrite(LED_PIN,HIGH);
delay(500);
digitalWrite(LED_PIN,LOW);
delay(500);
digitalWrite(LED_PIN,HIGH);
if(results.value==16726215)
{
digitalWrite(LED_PIN,LOW);
break;
}
else
{
i=i-1;
}
}
}
irrecv.resume();
}
} 你自己进死循环了,死循环中又不处理红外消息,自然就所谓的死掉了。 把程序捋一下,有些混乱.
页:
[1]