“(SKU:RB-03T003)超薄红外遥控器”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
(以“<br/> 居中 ==概述== :红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件...”为内容创建页面)
 
测试程序
 
(未显示2个用户的10个中间版本)
第1行: 第1行:
 
<br/>
 
<br/>
[[文件:asda1.jpg|500px|有框|居中]]
+
[[文件:asda1.jpg|500px|有框|]]
==概述==
+
==产品概述==
:红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件,确保了产品具有极高的可靠性与卓越的长期稳定性。HS0038是一个集成度很高的元器件。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的 TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在产品中我们采用红外一体化接收头HS0038,外观如封面图片所示。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰。HS0038 为直立侧面收光型。它接收红外信号频率为38 kHz ,周期约26  μs ,能同时对信号进行放大、检波、整形,得到 TTL 电平的编码信号。因此该款产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。  
+
红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件,确保了产品具有极高的可靠性与卓越的长期稳定性。HS0038是一个集成度很高的元器件。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的 TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在产品中我们采用红外一体化接收头HS0038,外观如封面图片所示。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰。HS0038 为直立侧面收光型。它接收红外信号频率为38kHz ,周期约26μs ,能同时对信号进行放大、检波、整形,得到 TTL 电平的编码信号。因此该款产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。 应用领域:家电产品、人机互动平台、教学仪器仪表、PC遥控器等。
:应用领域:家电产品、人机互动平台、教学仪器仪表、PC遥控器等。
+
 
 
==规格参数==
 
==规格参数==
 
# CR2025环保纽扣电池,容量160mah
 
# CR2025环保纽扣电池,容量160mah
第11行: 第11行:
 
# 品质稳定,性价比高
 
# 品质稳定,性价比高
 
# 静态电流3-5uA,动态电流3-5mA
 
# 静态电流3-5uA,动态电流3-5mA
 +
===遥控器波形===
 +
[[文件:03T00301.jpg|700px|有框|居中]]
 +
 
==产品实物图==
 
==产品实物图==
 
[[文件:asda2.jpg|500px|有框|居中]]
 
[[文件:asda2.jpg|500px|有框|居中]]
==红外遥控接收传感器的测试 ==
+
==超薄红外遥控器的测试 ==
:我们使用Arduino控制器来做个测试,要用到硬件设备如下:
+
===硬件设备===
# Arduino控制器×1
+
* [http://www.alsrobot.cn/goods-546.html Carduino UNO 控制器] * 1个
# Arduino LCD1602 字符液晶扩展板×1
+
* [http://www.alsrobot.cn/goods-147.html V5.0传感器扩展板] * 1个
# 红外遥控接收传感器模块×1
+
* [http://www.alsrobot.cn/goods-157.html 红外遥控接收传感器模块] * 1个
# 蜂鸣器发声模块×1
+
* [http://www.alsrobot.cn/goods-133.html 食人鱼灯] * 1个
# 超薄红外遥控器×1
+
* [http://www.alsrobot.cn/goods-154.html 超薄红外遥控器] * 1个
# 通用3P传感器连接线×2
+
* [http://www.alsrobot.cn/goods-196.html 通用3P传感器连接线] * 1个
# USB 数据通信线×1
+
* [http://www.alsrobot.cn/goods-90.html USB 数据通信线] * 1个
[[文件:asda3.jpg|500px|有框|居中]]
+
===实验接线===
:如图所示,使用传感器连接线将红外遥控接收传感器连接到 LCD1602字符液晶扩展板的模拟口 1 上,如需声音提示可把本公司的蜂鸣器发声模块连接到模拟口 2 上,这里要说明下,我们是把模拟接口当做数字接口用,这样比较方便,参见例子程序中接口定义。连接好硬件后,再把测试源程序库文件解压缩到你的Arduino安装目录下的hardware\libraries 里面(如需红外遥控接收传感器库文件请联系我们的技术客服)。然后将代码编译后下载到Arduino里,就可以进行键值读取试验了,同时在软件里的串口监视窗口上可以看见同步的键值显示(注:软件串口波特率设置为9600)
+
* 红外接收模块接在Carduino UNO数字口5
# 配套遥控器键值表:
+
* 高亮食人鱼灯接在Carduino UNO数字口13
 +
===配套遥控器键值表===
 
[[文件:asda4.jpg|500px|有框|居中]]
 
[[文件:asda4.jpg|500px|有框|居中]]
#  Arduino 实验代码如下:
+
===测试程序===
<pre style='color:blue'>#include <LCD4Bit_mod.h> 
+
程序下载前需要将库文件IRremote安装到Arduino的hardware\libraries 里面。然后将代码编译后下载到Arduino里,就可以进行试验了,同时在软件里的串口监视窗口上可以看见同步的键值显示(注:软件串口波特率设置为9600)<br/>
LCD4Bit_mod lcd = LCD4Bit_mod(2); 
+
库文件下载链接:http://pan.baidu.com/s/1dE84ZS1 密码:2sf5<br/>
#define TIMER_RESET  TCNT1 = 0  
+
<pre style='color:blue'>
#define SAMPLE_SIZE  68  
+
#define TIMER_RESET  TCNT1 = 0
int BUZZER = 16;//  设置模拟口2 为蜂鸣器信号输出引脚
+
#define SAMPLE_SIZE  68
int IRpin = 15;   // 设置模拟口1 为信号接收引脚
+
int led = 13;
unsigned int TimerValue[SAMPLE_SIZE];  
+
int IRpin = 5;
char direction[SAMPLE_SIZE];  
+
unsigned int TimerValue[SAMPLE_SIZE];
byte change_count;  
+
char direction[SAMPLE_SIZE];
long time1, time2;  
+
byte change_count;
unsigned long data;  
+
long time1, time2;
char a,b,c,d,e;  
+
unsigned long data;
unsigned long irc;  
+
char a,b,c,d,e;
char tab[12]={"0123456789"};  
+
unsigned long irc;
void setup() {  
+
char tab[12]={"0123456789"};
     pinMode(IRpin, INPUT);
+
void setup()
     pinMode(13, OUTPUT);  
+
{
    pinMode(BUZZER,OUTPUT);// 设置与蜂鸣器连接的引脚为输出模式
+
     pinMode(IRpin, INPUT);  
    lcd.init();
+
     pinMode(13, OUTPUT);
    lcd.clear();
+
     TCCR1B = 0x03;  
    lcd.printIn("www.robotbase.cn");
+
     TCCR1A = 0x00;  
    lcd.cursorTo(2, 0);
+
     a=0;b=0;c=0;d=0;e=0;
lcd.printIn("IR_CODE:");
+
     Serial.begin(9600);  
     TCCR1B = 0x03;
+
     bee();
     TCCR1A = 0x00;
+
}
     a=0;b=0;c=0;d=0;e=0;  
+
     Serial.begin(9600);
+
     bee();
+
}
+
void loop() {
+
          lcd.cursorTo(2, 9); 
+
      lcd.print(tab[a]);
+
          lcd.cursorTo(2, 10); 
+
      lcd.print(tab[b]);
+
          lcd.cursorTo(2, 11); 
+
      lcd.print(tab[c]);
+
          lcd.cursorTo(2, 12); 
+
      lcd.print(tab[d]);
+
          lcd.cursorTo(2, 13); 
+
      lcd.print(tab[e]);
+
          ir_code();                                                                 
+
          Serial.println(irc);  
+
}  
+
  
void bee()  
+
void loop()
{  
+
{
    digitalWrite(BUZZER,LOW);// 蜂鸣器响
+
          ir_code();
    delay(300);
+
           Serial.print(",");
    digitalWrite(BUZZER,HIGH);// 蜂鸣器响
+
           Serial.println(irc);
    delay(300);
+
}
+
void ir_code() {
+
        change_count = 0;  
+
        while(digitalRead(IRpin) == HIGH) {}           //  等待起始位
+
        TIMER_RESET;
+
        TimerVal ue[change_count] = TCNT1;
+
        directio n[change_count++] = '0';
+
        while (change_count < SAMPLE_SIZE)
+
            if (direction[change_count-1] == '0') { 
+
          while(digitalRead(IRpin) == LOW) {}  //  等待电平上升沿出现                                                                 
+
          TimerValue [change_count] = TCNT1; 
+
          direction[change_count++] = '1';  //  保持信号状态
+
}         
+
            else  {             
+
          while(digit alRead(IRpin) == HIGH) {}    //  等待电平信号的下降沿
+
          TimerValue [change_count] = TCNT1; 
+
              direction[change_count++] = '0';  //  保持信号状态
+
          }
+
        }
+
        change_count = 0;
+
        data = 0;
+
        time1 = (long) TimerValue[change_count] * 4; 
+
        change_count += 2;
+
        while (change_count < SAMPLE_SIZE) {
+
        time2 = (long) TimerValue[change_count] * 4;  
+
           if ((time2 -  time1) > 8000)         
+
        {
+
}
+
        else if ((time2 - time1) > 1680) {       
+
            data = data << 1;      // 左移一位
+
data |= 1;                
+
 
}
 
}
         else {                  
+
void bee()
               data = data << 1;             
+
{
}  
+
    digitalWrite(led,LOW);
         change_count += 2;  
+
    delay(1000);
         time1 = time2;  
+
    digitalWrite(led,HIGH);
       }  
+
    delay(1000);
       irc=data%100000;  
+
}
         a=irc/10000;  
+
void ir_code()
         b=irc%10000/1000;  
+
{
         c=irc%1000/100;  
+
        change_count = 0;
         d=irc%100/10;  
+
        while(digitalRead(IRpin) == HIGH)            // 等待起始位
         e=irc%10;  
+
        TIMER_RESET;
        bee();  
+
        TimerValue[change_count] = TCNT1;
}</pre>
+
        direction[change_count++] = '0';
→购买地址  超薄红外遥控器 http://www.alsrobot.cn/goods.php?id=154]
+
        while (change_count < SAMPLE_SIZE)
 +
        { 
 +
          if (direction[change_count-1] == '0')
 +
            { 
 +
              while(digitalRead(IRpin) == LOW)  // 等待电平上升沿出现
 +
              TimerValue[change_count] = TCNT1; 
 +
              direction[change_count++] = '1';  // 保持信号状态
 +
            }          
 +
          else
 +
            {            
 +
               while(digitalRead(IRpin) == HIGH)  // 等待电平信号的下降沿
 +
              TimerValue[change_count] = TCNT1;
 +
              direction[change_count++] = '0';  // 保持信号状态
 +
            }
 +
        }
 +
        change_count = 0;
 +
        data = 0;
 +
        time1 = (long) TimerValue[change_count] * 4; 
 +
        change_count += 2;
 +
        while (change_count < SAMPLE_SIZE)
 +
        {
 +
        time2 = (long) TimerValue[change_count] * 4;
 +
          if ((time2 - time1) > 8000)
 +
            {}
 +
       
 +
            else if ((time2 - time1) > 1680)
 +
              {   
 +
                  data = data << 1;           // 左移一位
 +
                  data |= 1;         
 +
              }
 +
             else
 +
              {               
 +
                  data = data << 1;     
 +
              }
 +
         change_count += 2;
 +
         time1 = time2;
 +
       }
 +
       irc=data%100000;
 +
         a=irc/10000;
 +
         b=irc%10000/1000;
 +
         c=irc%1000/100;
 +
         d=irc%100/10;
 +
         e=irc%10;
 +
switch(irc)
 +
  {
 +
    case 53245:
 +
    Serial.print("CH-");
 +
    bee();
 +
    break;
 +
  }
 +
}
 +
</pre>
 +
 
 +
===程序效果===
 +
当按下CH-按键时,串口显示CH-键值,同时,Arduino 13号数字引脚LED闪烁一次。<br/>
 +
 
 +
==应用视频==
 +
[[File:hong wai yao kong 02.png|400px|左|link=http://v.youku.com/v_show/id_XMjE4Mzg5OTQ0.html?from=y1.7-2]]
 +
[[File:hong wai yao kong 01.png|400px|居中|link=http://v.youku.com/v_show/id_XMjE2NjgzMTU2.html?from=y1.7-2]]
 +
<br/>
 +
==产品相关推荐==
 +
[[文件:erweima.png|230px|无框|右]]
 +
===产品购买地址===
 +
[http://www.alsrobot.cn/goods-154.html 红外遥控器]<br/>
 +
===周边产品推荐===
 +
[http://www.alsrobot.cn/goods-151.html 红外遥控接收套件]<br/>
 +
[http://www.alsrobot.cn/goods-157.html 红外接收模块]<br/>
 +
===相关问题解答===
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=3119&fromuid=10780 Arduino uno R3+双H桥驱动板+红外遥控小车编程问题]<br/>
 +
===相关学习资料===
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=4048&fromuid=10780 视频;Arduino-2WD轻量型移动机器人红外遥控演示]<br/>
 +
[http://www.makerspace.cn/portal.php 奥松机器人技术论坛]<br/>

2018年10月15日 (一) 14:53的最后版本


Asda1.jpg

目录

产品概述

红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件,确保了产品具有极高的可靠性与卓越的长期稳定性。HS0038是一个集成度很高的元器件。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的 TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在产品中我们采用红外一体化接收头HS0038,外观如封面图片所示。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰。HS0038 为直立侧面收光型。它接收红外信号频率为38kHz ,周期约26μs ,能同时对信号进行放大、检波、整形,得到 TTL 电平的编码信号。因此该款产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。 应用领域:家电产品、人机互动平台、教学仪器仪表、PC遥控器等。

规格参数

  1. CR2025环保纽扣电池,容量160mah
  2. 发射距离:8m以上(具体和周围环境、接收端的灵敏度等因素有关)
  3. 有效角度:60度
  4. 面贴材料:0.125mmPET,有效寿命2万次。
  5. 品质稳定,性价比高
  6. 静态电流3-5uA,动态电流3-5mA

遥控器波形

03T00301.jpg

产品实物图

Asda2.jpg

超薄红外遥控器的测试

硬件设备

实验接线

  • 红外接收模块接在Carduino UNO数字口5
  • 高亮食人鱼灯接在Carduino UNO数字口13

配套遥控器键值表

Asda4.jpg

测试程序

程序下载前需要将库文件IRremote安装到Arduino的hardware\libraries 里面。然后将代码编译后下载到Arduino里,就可以进行试验了,同时在软件里的串口监视窗口上可以看见同步的键值显示(注:软件串口波特率设置为9600)
库文件下载链接:http://pan.baidu.com/s/1dE84ZS1 密码:2sf5

#define TIMER_RESET  TCNT1 = 0
#define SAMPLE_SIZE  68
int led = 13;
int IRpin = 5;  
unsigned int TimerValue[SAMPLE_SIZE];
char direction[SAMPLE_SIZE];
byte change_count;
long time1, time2;
unsigned long data;
char a,b,c,d,e;
unsigned long irc;
char tab[12]={"0123456789"};
void setup()
{
    pinMode(IRpin, INPUT); 
    pinMode(13, OUTPUT);  
    TCCR1B = 0x03; 
    TCCR1A = 0x00; 
    a=0;b=0;c=0;d=0;e=0;
    Serial.begin(9600); 
    bee();
}

void loop()
{
          ir_code();
          Serial.print(",");
          Serial.println(irc);
}
void bee()
{
    digitalWrite(led,LOW);
    delay(1000);
    digitalWrite(led,HIGH);
    delay(1000);
}
void ir_code()
{
         change_count = 0;
         while(digitalRead(IRpin) == HIGH)            // 等待起始位
         TIMER_RESET;
         TimerValue[change_count] = TCNT1;
         direction[change_count++] = '0';
         while (change_count < SAMPLE_SIZE)
         {  
           if (direction[change_count-1] == '0')
             {  
               while(digitalRead(IRpin) == LOW)   // 等待电平上升沿出现
               TimerValue[change_count] = TCNT1;  
               direction[change_count++] = '1';   // 保持信号状态
             }         
           else
             {             
               while(digitalRead(IRpin) == HIGH)   // 等待电平信号的下降沿
               TimerValue[change_count] = TCNT1; 
               direction[change_count++] = '0';   // 保持信号状态
             }
         }
        change_count = 0;
        data = 0;
        time1 = (long) TimerValue[change_count] * 4;  
        change_count += 2;
        while (change_count < SAMPLE_SIZE)
        {
        time2 = (long) TimerValue[change_count] * 4;
          if ((time2 - time1) > 8000)
            {}
        
             else if ((time2 - time1) > 1680)
               {    
                  data = data << 1;            // 左移一位
                  data |= 1;           
               } 
            else 
              {                 
                  data = data << 1;      
              }
        change_count += 2;
        time1 = time2;
      }
       irc=data%100000;
        a=irc/10000;
        b=irc%10000/1000;
        c=irc%1000/100;
        d=irc%100/10;
        e=irc%10;
switch(irc)
  {
    case 53245:
    Serial.print("CH-");
    bee();
    break;
  }
}

程序效果

当按下CH-按键时,串口显示CH-键值,同时,Arduino 13号数字引脚LED闪烁一次。

应用视频

Hong wai yao kong 02.png
Hong wai yao kong 01.png


产品相关推荐

Erweima.png

产品购买地址

红外遥控器

周边产品推荐

红外遥控接收套件
红外接收模块

相关问题解答

Arduino uno R3+双H桥驱动板+红外遥控小车编程问题

相关学习资料

视频;Arduino-2WD轻量型移动机器人红外遥控演示
奥松机器人技术论坛