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(); // 继续等待接收下一组信号
}
} 展开
/*
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(); // 继续等待接收下一组信号
}
} 展开
展开全部
这种注重实时性的程式千万不能用delay(),
delay的时候你的红外解码也是停的。
另外你写的实在没什么逻辑,感觉是砍掉重做的好。。
delay的时候你的红外解码也是停的。
另外你写的实在没什么逻辑,感觉是砍掉重做的好。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询