“红外接收”的版本间的差异

来自YFRobotwiki
跳转至: 导航搜索
(以“ 红外接收 === 产品简介 === <br> 红外接收模块,采用HS0038一体化红外遥控接收元件,中心频率...”为内容创建页面)
 
第6行: 第6行:
 
=== 产品简介 ===
 
=== 产品简介 ===
 
<br>
 
<br>
 红外接收模块,采用HS0038一体化红外遥控接收元件,中心频率为38.0kHz, 可改善 自然光的反射干扰。
+
 红外接收模块,采用HS0038一体化红外遥控接收元件,中心频率为38.0kHz,自然光的反射干扰。
  
  
 
=== 规格参数 ===
 
=== 规格参数 ===
 
<br>
 
<br>
*供电电压 :DC3.3 - 5V
+
*供电电压 :DC5V
*工作温度:-25~+70℃,60%RH以下(无结冰、无凝露)
+
*接 收信号:38 kHz
*工作湿度:35~85%RH(+5~+35℃)
+
* 周期:26μs
*接 点结构:1A常开接点
+
*接触阻值:100mΩ以下
+
*绝缘阻值:100MΩ以上
+
* 使用寿命:1000万次以上
+
 
*安装孔径:3MM
 
*安装孔径:3MM
*模块尺寸:28*21*15.8MM (长*宽*高)
+
*模块尺寸:28*21*11MM (长*宽*高)
 
*孔间距:15MM
 
*孔间距:15MM
*模块重量 :3.8g
+
*模块重量 :2.3g
  
 +
 +
 +
=== 主要应用 ===
 +
广泛应用于:空调、风扇、暖风机、加湿器、电视、DVD、机顶盒、车载移动DVD、硬盘播放器、多媒体组合音响、数码相框、手机等家电产品,电脑及周边设备,感应洁具,仪表,工业自动化,遥控玩具,通讯器材,照相器材,事务机器,金融电子,汽车电子,灯饰照明等领域。
  
  
第38行: 第38行:
 
:'''电路连接示意图'''
 
:'''电路连接示意图'''
 
<br>
 
<br>
::5个''' 欧姆龙按键模块'''的 G、V、S分别连 '''Arduino UNO'''的GND、VCC(+5V)、D8~D12引脚。
+
::''' 红外 模块'''的 G、V、S分别连接 '''Arduino UNO'''的GND、VCC(+5V) 、D11 引脚。
::'''无源蜂鸣器 模块'''的 G、V、S分别连接 '''Arduino UNO'''的GND、VCC(+5V) 、D6 引脚。
+
  
 
   
 
   
<!--[[Image:  触摸传感器 模块.jpg|400px|center| 触摸传感器 模块接线图]]-->
+
<!--[[Image:  红外接收 模块.jpg|400px|center| 红外接收 模块接线图]]-->
  
  
  
 
:'''示例代码'''
 
:'''示例代码'''
 +
<br>
 +
<font color="darkcyan">'''示例一'''</font>:获取键值
 
<pre >
 
<pre >
//button test
+
/*
 +
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 +
* An IR detector/demodulator must be connected to the input RECV_PIN.
 +
* Version 0.1 July, 2009
 +
* Copyright 2009 Ken Shirriff
 +
* http://arcfn.com
 +
*/
  
int buzzerPin = 6;
+
#include <IRremote.h>
int buttonPin[5] = {8,9,10,11,12};
+
int buttonState = 0;
+
int buttonVal[5];
+
  
int notes_DL[7] = {147,165,175,196,221,248,278};
+
int RECV_PIN = 11;
int notes_D[7] = {294,330,350,399,441,495,556};
+
int notes_DH[7] = {589,667,700,786,882,990,1112};
+
  
void setup ()
+
IRrecv irrecv(RECV_PIN);
 +
 
 +
decode_results results;
 +
 
 +
void setup()
 
{
 
{
   pinMode(buzzerPin,OUTPUT);
+
   Serial.begin(9600);
 +
  irrecv.enableIRIn(); // Start the receiver
 
}
 
}
  
void loop()
+
void loop() {
 +
  if (irrecv.decode(&results)) {
 +
    Serial.print("irCode: ");
 +
    Serial.println(results.value, HEX);
 +
    delay(200);
 +
    irrecv.resume(); // Receive the next value
 +
  }
 +
}
 +
</pre>
 +
程序下载地址:[http://pan.baidu.com/s/1qJCKY IRrecvDemo]
 +
 
 +
程序运行结果:接收按键值,并串口打印。偶尔出现 "FFFFFFFF" 码值,属于正常现象,可适当延长延时时间。
 +
 
 +
最终整理按键值表格:
 +
 
 +
{|border="1" cellspacing="0" align="center" cellpadding="5" width="800px"
 +
|-
 +
|align="center"|遥控器字符
 +
|align="center"|键值
 +
|align="center"|遥控器字符
 +
|align="center"|键值
 +
|-
 +
|align="center"|红色/关闭键
 +
|align="center"|0xFFA25D
 +
|align="center"|MENU
 +
|align="center"|0xFFE21D
 +
|-
 +
|align="center"|TEST
 +
|align="center"|0xFF22DD
 +
|align="center"|+
 +
|align="center"|0xFF02FD
 +
|-
 +
|align="center"|返回键
 +
|align="center"|0xFFC23D
 +
|align="center"|快退/左2三角
 +
|align="center"|0xFFE01F
 +
|-
 +
|align="center"|播放/一个三角
 +
|align="center"|0xFFA857
 +
|align="center"|快进/右2三角
 +
|align="center"|0xFF906F
 +
|-
 +
|align="center"|0
 +
|align="center"|0xFF6897
 +
|align="center"|-
 +
|align="center"|0xFF9867
 +
|-
 +
|align="center"|C
 +
|align="center"|0xFFB04F
 +
|align="center"|1
 +
|align="center"|0xFF30CF
 +
|-
 +
|align="center"|2
 +
|align="center"|0xFF18E7
 +
|align="center"|3
 +
|align="center"|0xFF7A85
 +
|-
 +
|align="center"|4
 +
|align="center"|0xFF10EF
 +
|align="center"|5
 +
|align="center"|0xFF38C7
 +
|-
 +
|align="center"|6
 +
|align="center"|0xFF5AA5
 +
|align="center"|7
 +
|align="center"|0xFF42BD
 +
|-
 +
|align="center"|8
 +
|align="center"|0xFF4AB5
 +
|align="center"|9
 +
|align="center"|0xFF52AD
 +
|}
 +
<br>
 +
 
 +
<font color="darkcyan">'''示例二'''</font>:红外遥控
 +
<pre >
 +
/*
 +
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 +
* An IR detector/demodulator must be connected to the input RECV_PIN.
 +
* Version 0.1 July, 2009
 +
* Copyright 2009 Ken Shirriff
 +
* http://arcfn.com
 +
*/
 +
 
 +
#include <IRremote.h>
 +
 
 +
int RECV_PIN = 11;
 +
 
 +
IRrecv irrecv(RECV_PIN);
 +
 
 +
decode_results results;
 +
 
 +
void setup()
 
{
 
{
   for(int i = 0;i < 5;i++){
+
   Serial.begin(9600);
  if(digitalRead(buttonPin[i]) == LOW){
+
   irrecv.enableIRIn(); // Start the receiver
    buttonState = buttonPin[i];
+
}
  }
+
  
+
switch(buttonState){
+
  case 8: makeSound(1); break;
+
  case 9: makeSound(2); break;
+
  case 10: makeSound(3); break;
+
  case 11: makeSound(4); break;
+
  case 12: makeSound(5); break;
+
}
+
buttonState = 0;
+
}  
+
  
// s value: 1 - 7
+
void loop() {
void makeSound(int s){
+
   if (irrecv.decode(&results)) {
   tone(buzzerPin,notes_D[s-1]);
+
    Serial.print("irCode: ");
  delay(400);
+
    Serial.println(results.value, HEX);
  noTone(buzzerPin);
+
    delay(200);
 +
    irrecv.resume(); // Receive the next value
 +
  }
 
}
 
}
 
</pre>
 
</pre>
 程序下载地址:[http://pan.baidu.com/s/1bnfSogR buttonTest]
+
 程序下载地址:[http://pan.baidu.com/s/1qJCKY IRrecvDemo]
 +
 
 +
程序运行结果:接收按键值,并串口打印。偶尔出现 "FFFFFFFF" 码值,属于正常现象,可适当延长延时时间。
 +
 
  
程序运行结果:每个按键,可以发一个音符,按下即可发声,分别 "dol re mi fa so" 。
 
  
程序演示视频:[http://pan.baidu.com/s/1ntnFxfr button]
 
  
 
===参考资料===
 
===参考资料===
 
<br>
 
<br>
* [http://pan.baidu.com/s/1kTkvCUj 欧姆龙轻触式按键手册]
+
* [http://pan.baidu.com/s/1bnBGvKF IRremote库文件]
 +
* [http://pan.baidu.com/s/1mgy6Kfm 红外原理简介]
  
  

2015年9月1日 (二) 09:54的版本

红外接收


产品简介


红外接收模块,采用HS0038一体化红外遥控接收元件,中心频率为38.0kHz,自然光的反射干扰。


规格参数


  • 供电电压:DC5V
  • 接收信号:38 kHz
  • 周期:26μs
  • 安装孔径:3MM
  • 模块尺寸:28*21*11MM(长*宽*高)
  • 孔间距:15MM
  • 模块重量:2.3g


主要应用

广泛应用于:空调、风扇、暖风机、加湿器、电视、DVD、机顶盒、车载移动DVD、硬盘播放器、多媒体组合音响、数码相框、手机等家电产品,电脑及周边设备,感应洁具,仪表,工业自动化,遥控玩具,通讯器材,照相器材,事务机器,金融电子,汽车电子,灯饰照明等领域。


引脚说明


  • 1. G -- Gnd(地)
  • 2. V -- Vcc(电源+5V)
  • 3. S -- Sign(信号)


应用示例


电路连接示意图


红外接收模块的 G、V、S分别连接 Arduino UNO的GND、VCC(+5V)、D11引脚。



示例代码


示例一:获取键值

/*
 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.print("irCode: ");
    Serial.println(results.value, HEX);
    delay(200);
    irrecv.resume(); // Receive the next value
  }
}

程序下载地址:IRrecvDemo

程序运行结果:接收按键值,并串口打印。偶尔出现 "FFFFFFFF" 码值,属于正常现象,可适当延长延时时间。

最终整理按键值表格:

遥控器字符 键值 遥控器字符 键值
红色/关闭键 0xFFA25D MENU 0xFFE21D
TEST 0xFF22DD + 0xFF02FD
返回键 0xFFC23D 快退/左2三角 0xFFE01F
播放/一个三角 0xFFA857 快进/右2三角 0xFF906F
0 0xFF6897 - 0xFF9867
C 0xFFB04F 1 0xFF30CF
2 0xFF18E7 3 0xFF7A85
4 0xFF10EF 5 0xFF38C7
6 0xFF5AA5 7 0xFF42BD
8 0xFF4AB5 9 0xFF52AD


示例二:红外遥控

/*
 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.print("irCode: ");
    Serial.println(results.value, HEX);
    delay(200);
    irrecv.resume(); // Receive the next value
  }
}

程序下载地址:IRrecvDemo

程序运行结果:接收按键值,并串口打印。偶尔出现 "FFFFFFFF" 码值,属于正常现象,可适当延长延时时间。



参考资料





返回首页

更多建议和问题欢迎反馈至 YFRobot论坛

购买方式:YFRobot 电子工作室