Arduino-IRremote 3.x库更新

本文介绍了如何将Arduino的IRremote库从2.x版本更新到3.x,强调了新版本的特性,如软件生成PWM,节省硬件定时器。详细讲解了接收和发送红外信号的初始化方法,包括开启或关闭LED反馈,并提供了解码红外信号及检查溢出和重复标志的方法。
摘要由CSDN通过智能技术生成

在库管理器中搜索安装IRRemote库,它能使arduino任一数字引脚接受引脚,但所用的IR接收模块必须集成了带通滤波器,才能正确的接受数据;

把你的2.X程序升级到3.x版本的更新:ReceiveDemo

从 3.1 版本开始,用于发送的 PWM 的生成由软件完成,从而节省了硬件定时器并启用任意输出引脚进行发送。

如果您使用的是不使用-flto标志进行编译的(旧)Arduino 内核,在编译期间出现有关 begin() 的错误消息,您可以在IRRemote.h中激活#define SUPPRESS_ERROR_MESSAGE_FOR_BEGIN行。

  • 现在将原有IRrecv IrReceiver(IR_RECEIVE_PIN)或IRsend IrSender更新至IRreceiver和IRsender对象:红外接收使用IrReceiver,红外发射使用IrSender.
  • 启动接收与发送:
    • 接收(在 setup() 中调用)
      • IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);启动接收,并指定引脚;开启Arduino主板L灯反馈;
      • IrReceiver.begin(IR_RECEIVE_PIN, DISABLE_LED_FEEDBACK);启动接收,并指定接收引脚;关闭Arduino 主板L灯反馈;
    • 对于发送(在 setup() 中调用)
      • IrSender.begin(IR_SEND_PIN, ENABLE_LED_FEEDBACK);启动发送,并指定引脚;开启Arduino主板L灯反馈;
      • IrSender.begin(IR_SEND_PIN, DISABLE_LED_FEEDBACK);启动发送,并指定引脚;关闭Arduino主板L灯反馈;​​​​​​​
  • IrReceiver.decode() 接收到红外线信号,返回true/1,如果没有接收到红外线信号,就返回false/0 
  • 解码后的值现更新至IrReceiver.decodedIRData中:
    •  IrReceiver.decodedIRData.decodedRawData 当前按键编码值
    •  IrReceiver.decodedIRData.protocol 遥控器协议值
  • ​​​​​​​IrReceiver.resume():在使用decode()函数接收完红外信号后,必须使用resume()函数来重置IR接收器,才能再接收另一个红外线信号。
  • Overflow, Repeat and other flags(溢出、重复和其他标志)现在IrReceiver.receivedIRData.flags.
  • 很少使用:results.rawbufandresults.rawlen必须替换为IrReceiver.decodedIRData.rawDataPtr->rawbufand IrReceiver.decodedIRData.rawDataPtr->rawlen。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值