Arduino 红外遥控 出现FFFFFF的情况

网上的大部分红外遥控的代码,都是如下

#include < IRremote.h >


int RECV_PIN = 3;


IRrecv irrecv(RECV_PIN);// 设置红外接收器的引脚


decode_results results;// 定义results变量为红外结果存放位置


void setup()
{
  Serial.begin(9600);
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // 启动红外解码
  Serial.println("Enabled IRin");
}


void loop() {
  if (irrecv.decode(&results)) {// 解码成功,把数据放入results变量中
    Serial.println(results.value, HEX); // 显示红外编码
    irrecv.resume(); // 继续等待接收下一组信号
  }
  delay(100);
}

但是我使用了这段代码后,不管按下任何按键都只能读取到FFFFFFFF

但是,使用Mind+,却可以正常的去读到

于是,我查看了GitHub的公告,发现4.X后的版本,

IrSender.begin(DISABLE_LED_FEEDBACK)不在起作用

GitHub - Arduino-IRremote/Arduino-IRremote:Arduino的红外远程库:使用多种协议发送和接收红外信号

解决方案:

1、可以将库(IRremote)版本改成旧版,根据网上的资料2.X版本应该可以使用(我没有测试过)

2、使用新版的代码


#include <IRremote.h>


int RECV_PIN = 3;//设置红外遥控引脚
long results;//接收红外数据



void setup()
{
  Serial.begin(9600);//设置波特率
  IrReceiver.begin(RECV_PIN);// 设置红外接收器的引脚
}


void loop() {
  if (IrReceiver.decode()) 
  {
    results=IrReceiver.decodedIRData.decodedRawData;// 解码成功,把数据放入results变量中
    Serial.println(results,HEX); // 显示红外编码
    IrReceiver.resume(); 
  }
  delay(100);
}

具体可以参考

Arduinio 红外线键值出现FFFFFF?_哔哩哔哩_bilibili

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值