#在学习之前对其中的一些代码与函数不是很清楚,所以做了一下记录 前言
提示:红外遥控器中的代码知识:
提示:以下是本篇文章正文内容,下面案例可供参考
一、红外遥控的指令码到底如何获得?
示例:
if (ir_item == 16724175) { //当红外接收器接收到按键1时,LED灯点亮
digitalWrite(6,HIGH);
} else if (ir_item == 16718055) { //当红外接收器接收到按键2时,LED灯熄灭
digitalWrite(6,LOW);
}
其中的16724157从何处而来
二、使用步骤
1.引入库
#include <IRremote.h> //红外接收库文件
long ir_item;
IRrecv irrecv(3); //指定ircv对象为红外引脚3
decode_results results;//一个解码的decode-result类型的对象result
void setup(){
Serial.begin(9600);//开始初始化通信串口
irrecv.enableIRIn(); //启动红外接收器
}
void loop(){
if (irrecv.decode(&results)) {//尝试接收红外编码。如果编码接收成功则返回True,如果没有接收则返回False。当编码被成功接收后,有关信息会保存在“results”中。。从红外irreccv中筛选result对象是否存在,换句话就是是否检测到红外信号了。
ir_item=results.value;
String type=“UNKNOWN”;
String typelist[14]={“UNKNOWN”, “NEC”, “SONY”, “RC5”, “RC6”, “DISH”, “SHARP”, “PANASONIC”, “JVC”, “SANYO”, “MITSUBISHI”, “SAMSUNG”, “LG”, “WHYNTER”};
if(results.decode_type>=1&&results.decode_type<=13){
// results.decode_type: 返回列表中协议类型的一种: NEC, SONY, RC5, RC6, 或者 UNKNOWN。
//results.value: 实际的红外编码 (如果类型是UNKNOWN则返回0) 。
//results.bits: 返回的红外编码所占用的位数。
//results.rawbuf: 保存红外脉冲时长的数组。
//results.rawlen: 保存在数组中时长的数量。
type=typelist[results.decode_type];
}
Serial.print(“IR TYPE:”+type+" “);
Serial.println(ir_item);
delay(1000);
irrecv.resume();
} else {
Serial.print(”");
delay(1000);
}
}
总结
提示:这里对文章进行总结:
参考自https://www.geek-workshop.com/thread-1456-1-1.html