“(SKU:RB-03T004)红外发射模块”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
模块测试
测试程序
 
(未显示1个用户的14个中间版本)
第1行: 第1行:
<br/>
 
 
[[文件:3232.jpg|500px|有框|右]]
 
[[文件:3232.jpg|500px|有框|右]]
==概述==
+
==产品概述==
:由于在远距离传输过程中使用连接线可能会导致传输数据错误。2010年最新推出的IR&LED Module 是一款Arduino兼容的红外线发射传感器,可通过对Arduino进行编程发射出38KHz 调制信号,可适应市面上各种红外接收头,以便IR Receiver Module 38KHz 红外线接收传感器能接收到,从而实现红外无线通讯。
+
:由于在远距离传输过程中使用连接线可能会导致传输数据错误。IR&LED Module 是一款Arduino兼容的红外线发射传感器,可通过对Arduino进行编程发射出38KHz 调制信号,可适应市面上各种红外接收头,以便IR Receiver Module 38KHz 红外线接收传感器能接收到,从而实现红外无线通讯。 红外发射模块上的核心器件是红外发射管,其广泛使用在红外遥控设备上。该模块有3PIN接口,可以方便的通过Arduino等控制板实现红外遥控、通讯的功能。红外发射管是一个能发射出特定波长红外光的二极管。红外遥控器就是使用的红外发射头发出一连串的二进制脉冲码信号。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射头发射出去。
==性能参数==
+
==规格参数==
# 供电电压:  5V
+
* 供电电压:5V
# 工作环境:-25~+85℃  
+
* 工作环境:-25~+85℃  
# 储存温度:-30~+100 ℃  
+
* 储存温度:-30~+100 ℃  
# 波长: 940nm
+
* 波长:940nm
# 模块尺寸: 13.7mm×27.8mm  
+
* 模块尺寸:13.7mm×27.8mm  
# 模块重量: 1g
+
* 模块重量:1g
==引脚定义==
+
* 信号类型:数字信号
 +
* 红外中心波长:约850nm-940nm
 +
* 红外发射角:约20度
 +
* 红外发射距离:约1.3米 (5V 38Khz)
 +
==接口定义==
 
:传感器引脚的定义是
 
:传感器引脚的定义是
 
* S:输出信号
 
* S:输出信号
 
* +:电源(VCC)
 
* +:电源(VCC)
 
* -:地(GND)
 
* -:地(GND)
[[文件:3232-2.jpg|500px|有框|居中]]
+
[[文件:hongwaifashe01.jpg|500px|有框|居中]]
==连接示意图 ==
+
==使用方法==
[[文件:3232-3.jpg|500px|有框|居中]]
+
===连接示意图===
==模块测试 ==
+
[[文件:hongwaifashejiexian01.jpg|700px|有框|居中]]
我们使用Arduino控制器来做个测试,要用到硬件设备如下:
+
===看见红外线===
# Arduino控制器×2
+
试验目的:1秒间隔发射红外线<br/>
# Arduino 传感器扩展板×2
+
====使用硬件====
# 红外发射模块×1和红外接收模块×1
+
* [http://www.alsrobot.cn/goods-546.html Carduino UNO 控制器] * 1个
# 电位计模块×1和 LED 发光模块×1
+
* [http://www.alsrobot.cn/goods-147.html V5.0传感器扩展板] * 1个
# 通用3P传感器连接线×4
+
* [http://www.alsrobot.cn/goods-155.html 红外发射传感器] * 1个
# USB 数据通信线×2
+
* 具备摄像头的手机*1部
[[文件:3232-4.jpg|500px|有框|居中]]
+
====连线方法====
:如图所示,使用传感器连接线将电位计模块连接到作为发射部分的Arduino传感器扩展板的模拟口0 上,红外发射头连接到 Arduino传感器扩展板的数字口2 上。然后使用传感器连接线将红外发射头连接到作为接收部分的Arduino传感器扩展板的数字口2上,将LED 发光模块连接到Arduino传感器扩展板的数字口9 上。
+
将红外发射模块接在Carduino UNO控制器的数字3引脚
:将发送部分代码编译后下载到作为发送部分的Arduino里,将接收部分代码编译后下载到作为接收部分的Arduino里,就可以在串口助手窗口上显示接收到的当前值(注:串口助手波特率调到115200 )。Arduino实验代码如下。
+
====例子程序====
:发送部分程序:
+
<pre style="color:blue">
<pre style='color:blue'>#define ADD 0x00
+
void setup() {
int IR_S = 2;    // 定义数字口2 为发射模块接口
+
  // initialize digital pin 13 as an output.
int a;
+
  pinMode(3, OUTPUT);
void setup()  
+
{
+
pinMode(IR_S, OUTPUT); //定义IR_S为输出模式
+
Serial.begin(115200); //定义频率为115200
+
 
}
 
}
void loop()  
+
// the loop function runs over and over again forever
{  
+
void loop() {
    uint8_t dat,temp;    
+
   digitalWrite(3, HIGH);   // turn the LED on (HIGH is the voltage level)
{   
+
  delay(1000);             // wait for a second
      a=analogRead(0); // 读取模拟口0 的值
+
  digitalWrite(3, LOW);   // turn the LED off by making the voltage LOW
      temp =a/4;
+
  delay(1000);             // wait for a second
      Serial.println(temp,DEC ); // 将读取的数值打印到串口上
+
}
      IR_Send38KHZ(280,1);//发送9ms 的起始码
+
</pre>
      IR_Send38KHZ(140,0);//发送4.5ms 的结果码
+
====试验效果====
   
+
程序上传到Carduino UNO控制器后,将本模块放置到暗环境下(可放入纸盒或用手遮挡),用手机摄像头对准红外发射头前端,并在照相/摄像功能中仔细观察,可以看到有蓝紫色光在缓慢闪烁。注意在摄像范围内要整体处于暗光状态,若有较亮的光则无法观察到。
      IR_Sendcode(ADD);//用户识别码
+
===红外遥控/通讯===
      dat=~ADD;
+
红外遥控或通讯在技术上可以采用载波方式和非载波方式,所谓载波方式就是将要发送的信号调制到较高的载波频率上,以达到抗干扰、抗衰减等目的。由于红外线本身存在于自然光中,因此家电的红外遥控普遍使用38kHz的载波来达到抗干扰的目的。
      IR_Sendcode(dat);//用户识别码反吗
+
====使用硬件====
      IR_Sendcode(temp);// 操作码
+
* [http://www.alsrobot.cn/goods-546.html Carduino UNO 控制器] * 2个
      dat=~temp;
+
* [http://www.alsrobot.cn/goods-147.html V5.0传感器扩展板] * 2个
      IR_Sendcode(dat);//操作码反码
+
* [http://www.alsrobot.cn/goods-157.html 红外接收模块] * 1个
   
+
* [http://www.alsrobot.cn/goods-155.html 红外发射传感器] * 1个
      IR_Send38KHZ(21,1);// 发送结束码
+
====硬件接线====
    }
+
* 红外发射模块接在Carduino UNO的数字3脚
    delay(200);
+
* 红外接收模块接在Carduino UNO的数字11脚
}   
+
====测试程序====
 +
IRremote 库文件下载链接<br/>
 +
链接:https://pan.baidu.com/s/1wWgp1k-oXOKg-cFL502GGQ
 +
提取码:6sox
 +
=====发射端程序=====
 +
<pre style="color:blue">
 +
#include <IRremote.h>
 +
IRsend irsend;
 +
void setup()
 +
{
 +
}
 +
  void loop() {
 
   
 
   
void IR_Send38KHZ(int x,int y) //产生38KHZ红外脉冲
+
    irsend.sendRC5(0x0, 8); //send 0x0 code (8 bits)
{  
+
    delay(200);
  for(int i=0;i<x;i++)//15=386US
+
    irsend.sendRC5(0x1, 8);
  {  
+
    delay(200);
      if(y==1)  
+
  }
        {  
+
  </pre>
      digitalWrite(IR_S,1);  
+
=====接收端程序=====
          delayMicroseconds(9);  
+
<pre style="color:blue">
          digitalWrite(IR_S,0);  
+
#include <IRremote.h>
          delayMicroseconds(9);  
+
const int RECV_PIN = 11;
        }  
+
const int LED_PIN = 13;
       else
+
IRrecv irrecv(RECV_PIN);
        {  
+
  decode_results results;
          digitalWrite(IR_S,0);  
+
void setup()
          delayMicroseconds(20);  
+
{
        }
+
  Serial.begin(9600);
   }                                                          
+
  irrecv.enableIRIn(); // Start the receiver
}  
+
  pinMode(LED_PIN,OUTPUT);
 +
}
 +
void loop()
 +
{   
 +
  if (irrecv.decode(&results))
 +
  {
 +
    if ( results.bits > 0 )
 +
    {
 +
      int state;
 +
      if ( 0x1 == results.value )
 +
      {
 +
        state = HIGH;
 +
      }
 +
       else
 +
      {
 +
      state = LOW;
 +
      }
 +
      digitalWrite( LED_PIN, state );
 +
    }
 +
    irrecv.resume();       // prepare to receive the next value
 +
   }
 +
}
 +
</pre>
  
void IR_Sendcode(uint8_t x) 
+
==视频演示==
{
+
[[File:hong wai wu xian01.png|400px|左|link=http://v.youku.com/v_show/id_XODc4NDg2NDYw.html?from=y1.7-2]]
    for(int i=0;i<8;i++)
+
[[File:hong wai yan se 01.png|400px|居中|link=http://v.youku.com/v_show/id_XODc4NDc4MTQw.html?from=y1.7-2]]
    {
+
<br/>
      if((x&0x01)==0x01)
+
==产品相关推荐==
        {
+
[[文件:erweima.png|230px|无框|右]]
            IR_Send38KHZ(23,1);
+
===产品购买地址===
            IR_Send38KHZ(64,0);             
+
[http://www.alsrobot.cn/goods.php?id=155 红外发射模块]<br/>
        }
+
===周边产品推荐===
        else 
+
[http://www.alsrobot.cn/goods-151.html 红外接收遥控套装]<br/>
        {
+
[http://www.alsrobot.cn/goods-153.html 红外接收发射套装]<br/>
            IR_Send38KHZ(23,1);
+
[http://www.alsrobot.cn/goods-155.html 红外发射模块]<br/>
            IR_Send38KHZ(21,0); 
+
===相关问题解答===
        }
+
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=2617&fromuid=10780 红外接收发射套装的编码解码技术问题]<br/>
        x=x>>1;
+
===相关学习资料===
    } 
+
[http://v.youku.com/v_show/id_XODc4NDc4MTQw.html?from=y1.7-2 视频: 红外无线发射接收之颜色识别系统]<br/>
} </pre>
+
[http://v.youku.com/v_show/id_XODc4NDg2NDYw.html?from=y1.7-2 视频: 红外无线传输之旋转电位计控制LED灯]<br/>
:此代码的功能是从模拟口0 读取电位计的值,并通过红外发射头将读取的数值发送出去。
+
[http://www.makerspace.cn/portal.php 奥松机器人技术论坛]<br/>
接收部分程序:
+
<pre style='color:blue'>#define IR_LED  2  //IR 接收数字口2
+
#define MAX  128
+
#define MICRO_STEP  10
+
#define IDLE_PULSE  4000
+
unsigned long pulses[MAX];
+
unsigned char IRCOM[7];
+
unsigned long z;
+
int w;
+
byte f=B00000000; // 定义f 为位
+
int n;
+
int ledpin=9; // 定义数字口9 为LED 模块接口
+
void setup()
+
{
+
  pinMode(IR_LED, INPUT);
+
  Serial.begin(115200);
+
  pinMode(ledpin,OUTPUT); //定义ledpin 为输出模式
+
}
+
                                                           
+
void loop()
+
+
  if( digitalRead(IR_LED) == LOW)
+
  {
+
    // 开始接收数据
+
        int count = 0;
+
        int exit = 0;
+
    while(!exit)
+
    {
+
      while( digitalRead(IR_LED) == LOW )
+
        delayMic roseconds(MICRO_STEP);
+
      unsigned long start = micros();
+
      int max_high = 0;
+
      while( digitalRead(IR_LED) == HIGH )
+
      {
+
        delayMic roseconds(MICRO_STEP);
+
        max_high += MICRO_STEP;
+
        if( max_high > IDLE_PULSE )
+
        {
+
          exit = 1;
+
          break;
+
        }
+
      }
+
      unsigned long duration = micros() - start;
+
      pulses[count++] = duration;
+
    }
+
    for(int i=3; i<4; i++)
+
    {
+
      for(int j=0;j<8;j++)
+
      {
+
        if(pulses[ i*8+j+1] < IDLE_PULSE)
+
        {
+
            IRCOM[i]=IRCOM [i] >> 1;           
+
            if((pulses[i*8+j+1])>1000)
+
              {IRCOM[i] = IRCOM[i] | 0x80;}           
+
        }
+
      z= pulses[i*8+j+1];
+
/***************************************************/  
+
    //将接收到的脉冲数据转换成十进制                                                                   
+
/***************************************************/ 
+
      if(z<800)
+
          w=10000000;  //如果Z 小于800  w=10000000
+
      else
+
          w=00000000;  //如果Z 大于800  w=00000000
+
      f=f>>1;        // 将f 右移1 位
+
      f=f+w;     
+
/***************************************************/  
+
    }
+
    }
+
  n=int(f);
+
  Serial.print(n);// 将接收到的数据打印到串口上
+
  analogWrite(ledpin,n); //将接收到的数据写入ledpin 接口,控制LED 亮度
+
  }
+
} </pre>
+
:此部分代码功能是通过红外接收头接收发送部分发送出的电位计的值来控制LED的亮度变化并通过串口助手显示当前接收到的值。如下图所示左侧串口助手(串口号为:117 )显示的是红外发送部分当前发送出的电位计的值,右侧串口助手(串口号为:88)显示的是红外接收部分接收到的数值。通过旋转角度电位计模块可以控制接收端的LED亮度
+
[[文件:3232-5.jpg|500px|有框|居中]]
+
==相关推荐==
+
购买地址: [ http://www.alsrobot.cn/goods.php?id=155 红外发射模块]
+
论坛地址:[http://www.makerspace.cn/portal.php 奥松机器人技术论坛]
+

2021年12月1日 (三) 10:23的最后版本

3232.jpg

目录

产品概述

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

规格参数

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

接口定义

传感器引脚的定义是
  • S:输出信号
  • +:电源(VCC)
  • -:地(GND)
Hongwaifashe01.jpg

使用方法

连接示意图

Hongwaifashejiexian01.jpg

看见红外线

试验目的:1秒间隔发射红外线

使用硬件

连线方法

将红外发射模块接在Carduino 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
}

试验效果

程序上传到Carduino UNO控制器后,将本模块放置到暗环境下(可放入纸盒或用手遮挡),用手机摄像头对准红外发射头前端,并在照相/摄像功能中仔细观察,可以看到有蓝紫色光在缓慢闪烁。注意在摄像范围内要整体处于暗光状态,若有较亮的光则无法观察到。

红外遥控/通讯

红外遥控或通讯在技术上可以采用载波方式和非载波方式,所谓载波方式就是将要发送的信号调制到较高的载波频率上,以达到抗干扰、抗衰减等目的。由于红外线本身存在于自然光中,因此家电的红外遥控普遍使用38kHz的载波来达到抗干扰的目的。

使用硬件

硬件接线

  • 红外发射模块接在Carduino UNO的数字3脚
  • 红外接收模块接在Carduino UNO的数字11脚

测试程序

IRremote 库文件下载链接
链接:https://pan.baidu.com/s/1wWgp1k-oXOKg-cFL502GGQ 提取码:6sox

发射端程序
#include <IRremote.h>
 IRsend irsend;
 void setup()
 {
 }
 void loop() {
 
     irsend.sendRC5(0x0, 8); //send 0x0 code (8 bits)
     delay(200);
     irsend.sendRC5(0x1, 8); 
     delay(200);
 }
 
接收端程序
#include <IRremote.h>
 const int RECV_PIN = 11;
 const int LED_PIN = 13;
 IRrecv irrecv(RECV_PIN);
 decode_results results;
 void setup()
 {
   Serial.begin(9600);
   irrecv.enableIRIn(); // Start the receiver
   pinMode(LED_PIN,OUTPUT);
 }
 void loop() 
 {    
   if (irrecv.decode(&results)) 
   {
     if ( results.bits > 0 )
     {
       int state;
       if ( 0x1 == results.value )	
       {		
         state = HIGH;
       }
       else
       {
       	state = LOW;
       }	
       digitalWrite( LED_PIN, state );			
     }
     irrecv.resume();        // prepare to receive the next value
   }
 }

视频演示

Hong wai wu xian01.png
Hong wai yan se 01.png


产品相关推荐

Erweima.png

产品购买地址

红外发射模块

周边产品推荐

红外接收遥控套装
红外接收发射套装
红外发射模块

相关问题解答

红外接收发射套装的编码解码技术问题

相关学习资料

视频: 红外无线发射接收之颜色识别系统
视频: 红外无线传输之旋转电位计控制LED灯
奥松机器人技术论坛