目录
- 一、简介
- 二、使用前准备
- 三、测试方法
- 四、实验现象
- 总结
一、简介
HX1838红外接收模块采用HX1838红外接收管,灵敏度高,数字输出,固定螺栓孔,安装方便,红色安装指示灯。新型的超薄 38K 通用红外遥控器采用 NEC 编码格式主要用于车载 MP3.足浴盆、照明设置、数码相框、单片机开发板和学习板。由于是基于无线遥控,人们使用方便有效,应用领域越来越广。
二、使用前准备
| 红外遥控模块 接收头HX1838 NEC编码 | 1套 |
|---|---|
| 原装正版Arduino uno r3开发板 | 1个 |
| USB2.0打印机数据线高速方口连接转接线 A公对B公 | 1条 |
| 原装正品 3MM/F3直插圆头LED灯珠红发红 红色发光二极管短脚 | 1个 |
| 杜邦线 | 若干 |
三、测试方法
用USB2.0打印机数据线高速方口连接转接线Arduino uno r三开发板连接在一起。Arduino uno r如下图所示,开发板与红外接收模块连接 接线 5V —— GND —— - 11 —— OUT 12 —— 红色发光二极管长脚 GND —— 红色发光二极管短脚 安装Arduino IDE,打开ArduinoIDE,先安装【IRremote】库,点击项目,然后点击新建输入代码,如下图所示
点击上传,如下图所示 代码如下:
/* =====================电路连接====================== 红外接收器 1838B OUT 引脚 --- Arduino Uno 11 引脚 红外接收器 1838B VCC 引脚 --- Arduino Uno 5V 引脚 红外接收器 1838B GND 引脚 --- Arduino Uno GND 引脚 */ #include <IRremote.h>//使用IRremote库 #define RECV_PIN 11//定义11号引脚为接收引脚 IRrecv irrecv(RECV_PIN); // 初始化红外遥控 decode_results results; // 存储和接收红外遥控信息 void setup() { pinMode(12, OUTPUT);//定义12号引脚输出引脚 digitalWrite(12, LOW); //开始12号引脚低电平输出 Serial.begin(9600); Serial.println("Enabling IRin"); irrecv.enableIRIn() Serial.println("Enabled IRin"); } void loop() { /* decode()库函数用于判断红外接收器接收到的红外信号是否可以分析。 若能成功分析,则返回非零值。 如果能成功分析,则返回非零值。并将分析结果存储在内results中。 若分析不成功,则返回零。 每次分析完成后,都需要调用resume()函数让Arduino开始准备接受下一个红外 遥控指令。 */ if (irrecv.decode(&results)) { Serial.println(results.value, HEX); // results.value红外遥控信号的具体信号 if(results.value == 0xFF10EF) //F7C03F { Serial.println("Command Received: Turn On LED."); digitalWrite(12, HIGH); } if(results.value == 0xFF5AA5) //F740BF { Serial.println("Command Received: Turn Off LED."); digitalWrite(12, LOW); } irrecv.resume(); // 恢复接收下一个红外遥控信号 } delay(100); }
四、实验现象
下载程序后,按下遥控器按钮,显示按钮对应的键值FF10EF,点亮红光LED,按下遥控器的另一个按钮,显示按钮对应的键值FF5AA5.熄灭红光LED。按键持续时间长,显示重复信息FFFFFFFF。
总结
注意事项 (1)正确选择波特率。 (2)先安装【IRremote】库。 (3)按键持续时间长,重复信息会显示。FFFFFFFF。