您当前位置: Arduino >  红外接收传感器模块

扫描二维码,快速下载本应用说明文档(免费)

红外接收传感器模块      

下载: 20  点击: 5824


大小:22.48KB 价格:0.00元 更新日期:2016-06-18 开发者:小R科技
  

红外接收传感器模块
    • 应用名称
    • 所属分类
    • 更新时间
    • 立即下载
    • 红外接收传感器模块
    • Arduino
    • 2016-06-18
【红外接收传感器模块】 应用介绍

Arduino-红外接收模块

 
实验概述
      这是一款新型的超薄 38K 通用红外遥控器,采用的是 NEC 编码格式,主要用于车载 MP3、足浴盆、灯光设配、数码相框、单片机开发板和学习板等场合。因其是基于无线遥控,因此人们在使用起来显得方便、有效,现在的应用领域也越来越宽,那么针对我们公司的这款产品我们将做如下的介绍。
实验原理
      红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。
发射机
      一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。
接收电路
      一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构)。
技术参数

红外遥控距离:大于 8 米
发射管红外波长:940Nm
晶振频率:455KHZ 的晶振
载波频率:38KHZ
编码:编码格式为 NEC
尺寸:86* 40* 6mm
电源:CR2025/1600mAH

 
实验步骤
      在使用前一定要记得给红外遥控器上电池,还有红外遥控器要结合红外接收模块使 用,它负责将接收红外遥控器发射过来的信息并将其解码成十六进制码,这样才能实现 既定的通信。将红外接收模块与 Arduino 正确连接,其中 S 连接 11,VCC 接+5V,GND 接 GND,并将其固定好。打开arduino编程IDE

 

添加一下代码文件夹里面的这个IRremote.zip库,在编译和上传代码即可!
 

 
代码解析
      我们在这次的测试中将相应按键的编码在 Serial Monitor 窗口中显示出来
先看测试代码:
#include <IRremote.h>
#include <IRremoteInt.h>
 
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); //初始化红外遥控
  pinMode(12,1);
}
void loop()
{
  if (irrecv.decode(&results))
  {    
    Serial.println(results.value, HEX);//以16进制换行输出接收代码    
    Serial.println();//为了便于观看输出结果增加一个空行    
    irrecv.resume(); // 接收下一个值  
  }
 }
 
实验现象
      打开arduino开发板的开关,上传代码后,打开串口监听,当我们用红外遥控器对着红外接收头按下按键时可以看到,串口里面就显示这个按键的编码

 
 
      当我们按另外一个按键时可以看到编码又不同了,其中出现FFFFFFFF的时候是因为我们按这个按键的时间长,红外遥控器再长按的时候发送的编码是FFFFFFFF。
 

实验扩展
      既然我们已经知道如何通过串口显示我们所按下的按键的编码了,我们可以把这个按键的编码记录下来,再循环里面当接收到红外时判断这个接收的编码,如果是我们之前记录下来的那个按键编码,则开启LED,不是则不开启,这样一个红外遥控的LED就实现啦!
可以参考以下代码:
void loop() {
  if (irrecv.decode(&results)) {
 if(results.value==16753245)      //确认接收到的第一排按键1的编码,此码是预先读出来的按键编码。
  {
  digitalWrite(12,1);                //点亮LED
   Serial.println("turn on LED"); //串口显示开灯
  }
  else if(results.value==16736925)   //确认接收到的第一排按键2的编码

  {
   digitalWrite(12,0);            //熄灭LED
    Serial.println("turn off LED");    //串口显示关灯
  }
    irrecv.resume(); // 接收下一个值
  }
}

网友评论仅供网友表达个人看法,并不表明 小R科技 Robots-Store机器人应用商城 同意其观点或证实其描述
昵称: 验证码: