arduino编遥控按一个按键之后led循环亮,再按另一个键停在当下亮的那个,代码应该怎么改?

我觉得我问题出在if(results.value=16769565)/*IDE版本号:1.0.1*/#include<IRremote.h>//使用IRRemote函数库... 我觉得我问题出在 if(results.value=16769565)
/*
IDE版本号:1.0.1
*/
#include <IRremote.h> // 使用IRRemote函数库
const int irReceiverPin = 2; // 红外接收器的 OUTPUT 引脚接在 PIN2 接口 定义irReceiverPin变量为PIN2接口

IRrecv irrecv(irReceiverPin); // 设置irReceiverPin定义的端口为红外信号接收端口
decode_results results; // 定义results变量为红外结果存放位置
void setup()
{

Serial.begin(9600); // 开启串口,波特率为9600
irrecv.enableIRIn(); // 启动红外解码
for (int i=3; i<=8; i++) //通过循环的方式设置2-7号引脚为输出状态
{
pinMode(i,OUTPUT);
}
}
void loop()
{
if (irrecv.decode(&results)) { // 解码成功,把数据放入results变量中
switch(results.value){
case 16753245:
for (int x=3; x<=8; x++) //通过循环的方式依次让每个引脚的led在1秒内完成明灭
{
digitalWrite(x,HIGH);
delay(500);
if(results.value=16769565)
{
break;
}
digitalWrite(x,LOW);
delay(500);
}
}

irrecv.resume(); // 继续等待接收下一组信号
}
}
展开
 我来答
可家高06
2013-02-15 · TA获得超过128个赞
知道小有建树答主
回答量:248
采纳率:100%
帮助的人:153万
展开全部
这种注重实时性的程式千万不能用delay(),
delay的时候你的红外解码也是停的。
另外你写的实在没什么逻辑,感觉是砍掉重做的好。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱电子为你狂
2013-02-12
知道答主
回答量:42
采纳率:0%
帮助的人:14.4万
展开全部
网络如此大,你到极客这一类的论坛看看,参考下就可以了,加些自己改的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式