Arduino测试IRremote红外接收信号(同一按钮,多个结果)问题解决

1、首先需要确保代码正确、接线正确(红外接收器的灯在接收遥控器信号的时候是闪烁的);

2、将IRremote的库函数回退到2.8.0,就可以适配材料包中的红外遥控器发射的信号。(具体原因未知,我刚入门也很难嚼得动库函数的源代码,但版本回退的确是有效的)

如果按按钮过于频繁,在十六进制(HEX)模式下,输出FFFFFFFF是正常的,需要等待片刻再按按钮,就能得出稳定信号。

//我的测试代码,比较基础,仅供测试参考
#include<IRremote.h>

IRrecv IR(9);//定义一个红外接收对象,名称是IR,引脚2
decode_results JG;//解码_多个结果,创建一个地址变量,变量名称是JG

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  IR.enableIRIn();//开启红外接收
}

void loop() {
  // put your main code here, to run repeatedly:
  if (IR.decode(&JG)){
  //&是取地址内容,如果地址里面有数据,内容是true就执行下面内容,如果地址里面没有东西是fault就不执行,
    Serial.println(JG.value,HEX);
    //结果的值,加上.value,HEX是十六进制数的提示,以16进制输出结果JG.value的值
    IR.resume();
    //恢复之后,IR.decode里面的1就没有了
  }
  delay(500);
  }

解决方案发现者

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值