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函数中的高低电平交替,使得红外发射管时而导通时而阻塞,产生红外线闪烁效果。

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

接着连接电路(两脚的只需将长脚连接13号引脚,短脚接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);
  }
}

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

 

原文地址:https://www.cnblogs.com/ticktack/p/7041166.html