本帖最后由 lxf 于 2020-8-17 13:31 编辑
目标
1、用红外接收传感器接收MINI红外遥控器发送信号,利用串口打印读取按键数值
2、用mini红外遥控器控制LED灯的亮灭
实验材料
Arduino UNO开发板 红外接收传感器 mini红外遥控器 LED发光模块 配套USB数据线 配套杜邦线若干 Arduino IDE软件
(硬件对照图)
内容
通过mini红外遥控器发送信号给红外接收传感器,控制LED灯的亮灭,当按下1号按键时,LED灯点亮,当按下2号按键时LED灯熄灭。
接线图
(Arduino UNO开发板与红外接收传感器、LED灯的连接方式)
Arduino UNO <------> 红外接收传感器模块 5V <------> VCC GND <------> GND 3 <------> DAT
Arduino UNO <------> LED发光模块 5V <------> VCC GND <------> GND 6 <------> IN
需要一个红外通信接收的第三方库文件“IRremote”。 下载后解压,把解压后的整个文件夹复制放到Arduino安装包的“libraries”文件夹里面。
1、通过红外接收传感器,串口打印读取mini红外遥控器上的1和2号按键数值。
程序实现代码
- #include <IRremote.h> //红外接收库文件
- long ir_item;
- IRrecv irrecv_3(3);
- decode_results results_3;
- void setup(){
- Serial.begin(9600);
- irrecv_3.enableIRIn(); //红外接收管脚为3
- }
- void loop(){
- if (irrecv_3.decode(&results_3)) {
- ir_item=results_3.value;
- String type="UNKNOWN";
- String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
- if(results_3.decode_type>=1&&results_3.decode_type<=13){
- type=typelist[results_3.decode_type];
- }
- Serial.print("IR TYPE:"+type+" ");
- Serial.println(ir_item);
- delay(1000);
- irrecv_3.resume();
- } else {
- Serial.print("");
- delay(1000);
- }
- }
复制代码
打开串口监视器,按下mini红外遥控器1与2号键,查看结果
2、通过mini红外遥控器发送信号给红外接收传感器,控制LED灯的亮灭,当按下1号按键时,LED灯点亮,当按下2号按键时LED灯熄灭。
程序实现代码
- #include <IRremote.h> //红外接收库文件
- long ir_item;
- IRrecv irrecv_3(3);
- decode_results results_3;
- void setup(){
- pinMode(6, OUTPUT); //定义6号为输出管脚
- irrecv_3.enableIRIn();
- }
- void loop(){
- if (irrecv_3.decode(&results_3)) {
- ir_item=results_3.value;
- String type="UNKNOWN";
- String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
- if(results_3.decode_type>=1&&results_3.decode_type<=13){
- type=typelist[results_3.decode_type];
- }
- Serial.print("IR TYPE:"+type+" ");
- if (ir_item == 16724175) { //当红外接收器接收到按键1时,LED灯点亮
- digitalWrite(6,HIGH);
- } else if (ir_item == 16718055) { //当红外接收器接收到按键2时,LED灯熄灭
- digitalWrite(6,LOW);
- }
- irrecv_3.resume();
- } else {
- }
- }
复制代码
long()
语法 long(X) 参数 X:任何类型的值 |