查看红外接收的源代码
←
红外接收
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你刚才请求的操作只对属于该用户组的用户开放:
用户
您可以查看并复制此页面的源代码:
[[Image:红外接收.jpg|300px|thumb|红外接收]] === 产品简介 === <br> 红外遥控分发射和接收两部分,发射部分为Mini遥控器,接收部分为红外接收模块,红外接收模块采用HS0038一体化红外遥控接收元件,载波频率为38.0kHz,周期26us,可抗自然光的反射干扰。 红外系统原理框图如下,Mini遥控器编码调制发出红外线,接收模块将接收到的红外线遥控信号,经过放大、解调和整形后输出功能指令信号,送至微处理器进行识别和处理,从而实现遥控过程。 [[File:红外系统框图.png|600px]] <img src="http://yfrobot.gitee.io/YFRobot/wiki/img/红外遥控系统.gif" alt="红外"> 其他详见参考资料。 === 规格参数 === <br> *供电电压:DC3v3-5V *红外协议:NEC *载波频率:38 kHz *周期:26μs *接收距离:10m *安装孔径:3MM *模块尺寸:28*21*11MM(长*宽*高)/ Mini遥控器:88*40*7MM(长*宽*高) *孔间距:15MM *模块重量:2.2g / Mini遥控器:12.6g === 主要应用 === 广泛应用于:空调、风扇、暖风机、加湿器、电视、DVD、机顶盒、车载移动DVD、硬盘播放器、多媒体组合音响、数码相框、手机等家电产品,电脑及周边设备,感应洁具,仪表,工业自动化,遥控玩具,通讯器材,照相器材,事务机器,金融电子,汽车电子,灯饰照明等领域。 === 引脚说明 === <br> *1. G -- Gnd(地) *2. V -- Vcc(电源+5V) *3. S -- Sign(信号) === 应用示例 === <br> <font color="darkorenge">''' 提示'''</font>:以下程序需使用到 IRremote库文件,文件下载地址见页末 - 参考资料。下载后将其解压至arduinoIDE安装目录/libraries文件夹中,例如: "D:\Program Files\Arduino\arduino-1.6.4-windows\arduino-1.6.4\libraries"。 <br><br> '''电路连接''' <br> :'''红外接收模块'''的 G、V、S分别连接 '''Arduino UNO'''的GND、VCC(+5V)、D11引脚。 '''电路连接示意图''' <!-- <img src="http://yfrobot.gitee.io/wiki/img/红外遥控.png" alt="红外遥控" /> --> <img src="http://file.yfrobot.com.cn/wiki/image/sensor_circuit/IRReceiver.png-yf" alt="红外遥控" /> '''示例代码''' <br><br> <font color="darkcyan">'''示例一'''</font>:获取键值 <source lang="c"> /* * 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 } } </source> 程序下载地址:[https://eyun.baidu.com/s/3hsQn8zi IRrecvDemo] 程序运行结果:接收按键值,并串口打印。出现 "FFFFFFFF" 码值,属于正常现象,它是当收到重复码(长按)时NEC的解码值。 '''NEC重复码''' 对于重复发射(按钮按住),解码代码将一次次的返回相同的解码值。唯一的例外是NEC,会重复发射一个特殊的代码,而不是重复的发射该按键编码值。因此, 解码程序返回一个特殊REPEAT值(NEC默认返回值为0xFFFFFFFF,用户也可以在库中进行修改)。 [[File:NEC重复码定义.png|600px]] 最终整理按键值表格: {|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>:红外遥控 <source lang="c"> // Infrared remote control test #include <IRremote.h> int RECV_PIN = 11; int LED_PIN = 13; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); pinMode(LED_PIN,OUTPUT); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); controlLED(&results); irrecv.resume(); // Receive the next value } } //Control the LED void controlLED(decode_results *results) { switch(results->value){ case 0xFFA25D: digitalWrite(LED_PIN,LOW); break; case 0xFFE21D: digitalWrite(LED_PIN,HIGH); break; } } </source> 程序下载地址:[https://eyun.baidu.com/s/3pLQFnQz IRrecvControl] 程序运行结果:按“MENU”按钮,点亮LED,按下“关闭”按钮,关闭LED。 ===参考资料=== <br> * [https://yfrobot.gitee.io/wiki/lib/Arduino-IRremote-master.zip Arduino-IRremote-master库文件],[https://yfrobot.lanzoui.com/irjjssaf2uf Arduino-IRremote-master库文件] *<strike> [https://eyun.baidu.com/s/3dF2Ddex IRremote库文件]</strike> * [http://yfrobot.gitee.io/wiki/doc/HS0038B.pdf HS0038B] * [https://eyun.baidu.com/s/3hstJ61Q 红外原理简介] * [https://eyun.baidu.com/s/3c4lGmfY HS0038红外接受电路设计与应用] * [https://eyun.baidu.com/s/3nwKZxjj 红外遥控系统原理图解] ---- [[首页 | 返回首页]] 更多建议和问题欢迎反馈至 [http://www.yfrobot.com YFRobot论坛] 购买方式:[http://yfrobot.taobao.com/ YFRobot 电子工作室]
返回
红外接收
。
导航菜单
个人工具
登录
名字空间
页面
讨论
不转换
变种
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
台灣正體
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
YF-论坛提问
YFRobot-直营店
YFRobot-企业店
Arduino
Arduino之入门篇
Arduino入门教程
Arduino语法参考
Arduino库
Arduino核心代码
编程平台
Mixly库
Mind+库
MakeCode扩展
传感器系列
积木式传感器系列
黑板传感器系列
蓝板传感器系列
Micro:Bit
Micro:Bit 通用基础教程
Valon智能车
Valon-I
帮助
帮助
wiki语法参考
工具箱
链入页面
相关更改
特殊页面
页面信息