Arduino-IRremote 3.x库更新

  • Post author:
  • Post category:其他


在库管理器中搜索安装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)




        ;




        启动接收,并指定引脚;开启




        A




        rduino




        主板




        L




        灯反馈;



      • IrReceiver.begin(IR_RECEIVE_PIN,




        DISABLE




        _LED_FEEDBACK);启动接收,并指定接收引脚;关闭




        A




        rduino




        主板




        L




        灯反馈;


    • 对于发送


      (


      在 setup() 中调用


      )





      • IrSender.begin(IR_SEND_PIN,




        ENABLE




        _LED_FEEDBACK)




        ;




        启动发送,并指定引脚;开启




        A




        rduino




        主板




        L




        灯反馈;



      • IrSender.begin(IR_SEND_PIN,




        DISABLE




        _LED_FEEDBACK);启动发送,并指定引脚;关闭




        A




        rduino




        主板




        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。