远程控制系统之红外接收模块

  • 内容
  • ....
  • 相关

前言

红外接收头
这是一个3针的红外接收头,这应该是我们在日常生活中使用最多的模块了,如电视机遥控器、空调遥控器等等,均会用到红外接收头。在机器人、智能控制、智能制造、智能家居等领域均会用到红外接收头,它也属于远程控制系统的一个重要组成部分。

红外接收头构造

红外接收头由红外监测二极管,放大器,限幅器,带通滤波器,积分电路,比较器等组成。当红外监测二极管监测到红外信号时,它会把信号发送给放大器和限幅器,放大器对信号进行放大,限幅器负责控制脉冲幅度在一定的水平上。当信号进入带通滤波器,带通滤波器只允许通过频率为30khz到60khz的信号,滤除无关信号,然后信号再通过解调电路和积分电路,最后进入比较器还原出发射端的信号波形。红外接收头的种类很多,引脚定义也不完全相同,一般都有三个引脚,包括VCC,GND和DAT(OUT或Signal)。标准的红外接收头的引脚图如下:
红外接收头引脚定义图

市面上的一些红外接收头的引脚定义存在差异,如下图:

各种红外接收头引脚定义图

可以看出由于生产厂家不同,封装工艺不同,红外接收头的引脚定义也会存在差异,如TSOP4836 SFH5110对比TSOP1736 SFH506 它们的VCC、GND、signal引脚均不相同,所以在使用中我们需要特别注意。幸运的是,某宝有很多封装好的模块供我们选择使用。外貌较好的红外接收头模块

红外接收头模块

连线的规则:红外接收模块的3个针脚。从下到上,是:(G)GND,(V)VCC,(D)DAT。在实际连接中电缆应该也用明显的颜色来区分三个针脚,典型的颜色为:(G)GND = 黑色,(V)VCC = 红色,(D)DAT = 白色。

基于Arduino的简单测试

红外发射和接收头连接arduino

在使用前,需要安装IR-REMOTE 的 library,库文件地址:https://github.com/shirriff/Arduino-IRremote,如果编译时发生冲突或故障,请检查你的编译环境中是否存在类似IRRobotRemote的库,如有请删除后再进行编译。

下面做一个从读取红外遥控信号的实验,可通过串口监视器显示结果。代码如下:

/*
 *  接收红外信号测试 IR
 */

#include 

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // 开始接收
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // 接收下一个值
  }
  delay(100);
}