如何用arduino解码红外遥控器按键? 评论

红外接收头示例:

红外接收头arduino uno接线示意图

安装IRremote库5 a% j, V- }2 N7 O3 A+ [
下载库,解压缩,放到Arduino安装文件的libraries文件夹中4 ?0 ~% F- k) E. }$ a. G, X
下载地址:http://bbs.haibucuo.com/thread-113-1-1.html

代码:

。。。。。。代码开始。。。。。

#include <IRremote.h>

int RECV_PIN = 11;//定义红外接收器的引脚为11
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // 初始化红外接收器
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);//以16进制换行输出接收代码
Serial.println();//为了便于观看输出结果增加一个空行
irrecv.resume(); // 接收下一个值
}
}

。。。。代码结束。。。。。

打开arduino自带的串口监视软件

记录自己要定义的按钮的 代码以备后期使用  E* Z0 z; ]4 @- P# E, \: N” @; U# ]+ k

显示irCode:FFFFFFFF,bits:32是因为遥控器上没有做中断,误码导致,只要按一下松开,再按一下松开就没问题。” w7 N& S9 B- r* f! i0 Q2 U* }

代码样例:
FFA25D   FF629D
FF22DD  FF02FD   FFC23D
5 M) M; [! `) U
& H7 r1 H! H- p: M& W
arduino程序中 要给每个代码前加上0x00
如:long advence = 0x00FF629D;
long back = 0x00FF02FD;& S% A$ h7 e0 g8 W6 z
long stop = 0x00FFA25D;1 [
long left = 0x00FF22DD;7 q. w% T’ p6 n* J  Z! q& d/ D- {4 Q
long right = 0x00FFC23D;

发布日期:2017.08.09

发表评论