首页 > 代码库 > microduino实现红外线发送与接收

microduino实现红外线发送与接收

一、目标:使用microduino套件实现红外线的发送与接收

二、材料:(1)模块:Microduino Core/Core+ (核心板),Microduino-USBTTL(下载程序)

              (2)传感器:红外线发射器,红外线接收器

              (3)其它设备:Micro-USB线,面包板,导线

      - 红外线发射器使用说明:

        目前的红外发射器有两种规格,两脚的(左图)和三脚的(右图)

        两脚的结构和普通LED管相似,长引脚接高电平,短引脚接低电平

        三脚的连接情况分别是:5V,OUT,GND,其中OUT是指定的输出端口。它与红外接收管的引脚结构类似。

        技术分享    技术分享  

        - 面包板使用说明:如下图所示,上下两行线是分别连通的,中间的纵线是分别连通的。

        技术分享

三、红外线发射原理:

      红外发射器与普通LED类似,只需要给它分配一个电流输出引脚,连通电路就可以了。代码也非常简单,在Arduino IDE中新建项目,写入:

void setup() {
     pinMode(13, OUTPUT);     
}

void loop() {
    digitalWrite(13, HIGH);
    delay(5);
    digitalWrite(13, LOW);
}

    即在setup中定义13号为输出引脚,然后循环执行loop中的13号引脚高低电流交替,使得红外发射管时而导通时而阻塞,产生红外线闪烁效果。

    然后在“工具”中选择对应型号的开发板和处理器型号(本例使用的是Microduino/mCookie-device, Microduino/mCookie-core 16M),再编译程序。

    接着连接电路(两脚的只需将长脚连接自己定义的输出端口,短脚接GND):

    技术分享 技术分享

     最后,你可以通过电脑的相机观察,将灯管正对摄像头,如果看见紫色的红外线,就说明你成功了。效果如下图所示:

     技术分享

四、红外线接收原理及使用

     首先,再Ardunio IDE中加载IRremote库:

     #include <IRremote.h>

     然后,定义红外接收器的输出管脚,并将其使能:

     IRrecv irrecv(11);

     irrecv.enableIRIn();

     接着定义一个变量用于判断是否接收到红外线:

     decode_results results;

     如果接收到红外线:

     if(irrecv.decode(&results)){

        //在此执行你想做的逻辑
        irrecv.resume(); 
     }

    * 示例代码(为了看见直观的效果,我连接了一个LED,当接收到红外线时,LED亮起):

#include <IRremote.h>

IRrecv irrecv(11);
decode_results results;    

void setup() {
    pinMode(3, OUTPUT); /* 连接LED的引脚号 */
    irrecv.enableIRIn();
}

void loop() {
  digitalWrite(3, LOW);
  if(irrecv.decode(&results)){
    digitalWrite(3, HIGH);
    irrecv.resume();
    delay(5);
  }
}

效果图(左图为未接收红外线时,右图为接收到遥控器发射的红外线):

技术分享 技术分享

microduino实现红外线发送与接收