您现在的位置是:主页 > news > 产品营销型网站建设/百度快照入口

产品营销型网站建设/百度快照入口

admin2025/4/27 5:46:48news

简介产品营销型网站建设,百度快照入口,雷州网站建设公司,定制网站建设公司价格文章目录1.前言1.1 一体化红外接收头1.2 红外遥控器2.常用方法3.实验4.总结1.前言 红外通信是一种利用红外光编码进行数据传输的无线通信方式,在目前来说是使用非常广泛的。生活中常见电视遥控器,空调遥控器,DVD遥控器(现在估计是…

产品营销型网站建设,百度快照入口,雷州网站建设公司,定制网站建设公司价格文章目录1.前言1.1 一体化红外接收头1.2 红外遥控器2.常用方法3.实验4.总结1.前言 红外通信是一种利用红外光编码进行数据传输的无线通信方式,在目前来说是使用非常广泛的。生活中常见电视遥控器,空调遥控器,DVD遥控器(现在估计是…

文章目录

  • 1.前言
    • 1.1 一体化红外接收头
    • 1.2 红外遥控器
  • 2.常用方法
  • 3.实验
  • 4.总结

1.前言

    红外通信是一种利用红外光编码进行数据传输的无线通信方式,在目前来说是使用非常广泛的。生活中常见电视遥控器,空调遥控器,DVD遥控器(现在估计是老古董了),均使用红外线遥控。使用红外线遥控,主要有一体化红外接收头和红外遥控器。

1.1 一体化红外接收头

    一体化接收头内部集成了红外接收电路。它可以接收红外信号并还原发射端的波形信号。通常使用的一体化接收头都是38KHz的红外信号。

1.2 红外遥控器

    实验中采取以下遥控器

image

    每个按键都有各自的编码,按下按键后,就会发送对应编码的红外波。大多使用NEC编码。

    要想使用红外遥控功能,我们使用第三方红外遥控库——IRremote(如果是8266请使用 IRremoteESP8266 库)。

2.常用方法

下面介绍一下IRremote类库
1)IRrecv类 用于接收红外信号并对其解码。在使用前需要实例化一个该类对象。

  • IRrecv(recvpin) 构造函数 recvpin为连接到接收头的引脚
  • enableIRIn()初始化红外解码
  • decode() 检查是否接收到编码
  • resume() 接收下一个编码

3.实验

实验内容: 根据遥控器输入的红外信号,显示对应的符号;

实验代码

/**
* @Desc  测试红外通信
* @author 单片机菜鸟
* @Date  2016/12/29
* 
*/
#include <IRremote.h>#define MAX 22int RECV_PIN = 7;      //定义红外接收模块输出口接arduino数字引脚11IRrecv irrecv(RECV_PIN);
decode_results results;
//Car mp3编码
unsigned long rremote_code[MAX] = {0xFFA25D,0xFF629D,0xFFE21D,//CH- CH CH+0xFF22DD,0xFF02FD,0xFFC23D,//PREV NEXT PLAY0xFFE01F,0xFFA857,0xFF906F,//VOL- VOL+ EQ0xFF6897,0xFF9867,0xFFB04F,// 0 100+ 200+0xFF30CF,0xFF18E7,0xFF7A85,// 1  2  30xFF10EF,0xFF38C7,0xFF5AA5,// 4  5  60xFF42BD,0xFF4AB5,0xFF52AD, // 7  8  90xFFFFFFFF//长按
};//Car mp3对应的字符串
String rremote_string[MAX] = {"CH-","CH","CH+","PREV","NEXT","PLAY/PAUSE","VOL-","VOL+","EQ","0","100+","200+","1","2","3","4","5","6","7","8","9","longPress"
};void setup()
{Serial.begin(9600);irrecv.enableIRIn(); //初始化红外遥控
}void loop() {if (irrecv.decode(&results)) {//打印字符串String codeString = getRremoteString(results.value);if(codeString.length()!=0)Serial.println(codeString);irrecv.resume(); // 接收下一个值}
}/**
* 解析红外编码并返回对应的字符串
*/
String getRremoteString(unsigned long code){String rremotestring = "";int i = 0;for(i = 0;i<MAX-1;i++){if(code == rremote_code){break;  }}//过滤掉长按if(i==MAX-1) return "";else return rremote_string;
}

实验结果

image

4.总结

通过使用这个类库 我们可以解析到具体的键码,这样我们就可以基于这个去做一些我们想做的红外遥控功能(各位可以看看我写的蓝牙七彩灯帖子)。