• 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);
      }
    }

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

     

  • 相关阅读:
    Android:实现手势滑动的事件处理方法
    Android开发——跟随手指的小球实现
    android 关于setWidth()和setHeight()没反应的问题
    Android 设置 横屏 竖屏
    Android给TextView设置透明背景、圆角边框
    android 为TextView添加边框
    C++实现RTMP协议发送H.264编码及AAC编码的音视频
    视频编码器
    HTTP Live Streaming直播(iOS直播)技术分析与实现
    nginx上搭建HLS流媒体服务器
  • 原文地址:https://www.cnblogs.com/ticktack/p/7041166.html
Copyright © 2020-2023  润新知