用户工具

站点工具


侧边栏

索引

抱歉,您没有权限增加页面
通讯和数据传输:红外发射和接收模块

1、 产品图片

2、产品购买地址

3、产品概述

由于在远距离传输过程中使用连接线可能会导致传输数据错误。IR&LED Module 是一款Arduino兼容的红外线发射传感器,可通过对Arduino进行编程发射出38KHz 调制信号,可适应市面上各种红外接收头,以便IR Receiver Module 38KHz 红外线接收传感器能接收到,从而实现红外无线通讯。 红外发射模块上的核心器件是红外发射管,其广泛使用在红外遥控设备上。该模块有3PIN接口,可以方便的通过Arduino等控制板实现红外遥控、通讯的功能。红外发射管是一个能发射出特定波长红外光的二极管。红外遥控器就是使用的红外发射头发出一连串的二进制脉冲码信号。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射头发射出去。

4、产品参数

红外发射模块(标准)

  1. 供电电压:5V
  2. 工作环境:-25~+85℃
  3. 储存温度:-30~+100 ℃
  4. 波长:940nm
  5. 模块尺寸:21.5mm×22.3mm
  6. 模块重量:1g
  7. 信号类型:数字信号
  8. 红外中心波长:约850nm-940nm
  9. 红外发射角:约20度
  10. 红外发射距离:约1.3米 (5V 38Khz)

红外发射模块(大功率)

  1. 模块工作电压:5V
  2. 型号:940N 红外线
  3. 功率:1W
  4. 电流 1W:350MA
  5. 芯片:鼎元45 MIL
  6. 采用MOS放大电路,可以直接接单片机IO驱动,带有限流电路。
  7. 红外发射距离:5米-8米。
  8. 红外线建议在室内使用,强光实际是对红外线距离有很大的影响的。
  9. 电路板尺寸:20毫米
  10. 寿命>5万小时
  11. 工作温度:-20度 — 70度
  12. 角度:120度

5、引脚说明

  • GND:电源地
  • VCC:电源正
  • D :数字信号输入,高为发射红外,低为关闭红外

6、测试程序

程序作用:1秒间隔发射红外线,将红外发射模块接在Arduino UNO的数字3引脚。

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(3, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(3, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(3, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
实验效果:通过手机摄像模式对着发射端看会看到淡蓝光,部分手机不行,比如苹果、三星,自身已经软件过滤掉红外光。

7、测试程序(通信)

发射模块发射代码,接收模块接收代码。本示例为编译器自带示例。

发射端程序:



#include <IRremote.h>   // 引用 IRRemote 函式库
// 头文件已经定义PIN 3为信号输出
// 所以只能连接PIN 3 ,若更改请在头文件更改

//Mega2560对应的是引脚9
IRsend irsend;        // 定义 IRsend 物件来发射红外线讯号
void setup()
{
   //
  }
void loop()
{
   irsend.sendNEC(0xFF02FD, 32);   //这里的FF02FD编码,就是LED彩灯遥控的开关编码,
    //若果需要控制其他功能,请先用接收管读取正确的编码值。
   delay(2000);
}

接收端程序:

#include <IRremote.h>
 
int RECV_PIN = 11;//定义红外接收器的引脚为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);//以16进制换行输出接收代码
     Serial.println();//为了便于观看输出结果增加一个空行
     irrecv.resume(); // 接收下一个值
   }
} 

8、相关下载

9、综合实验

通讯和数据传输/红外发射和接收模块.txt · 最后更改: 2019/09/10 16:49 由 ultirobot