|
|
新人发帖~~
本人最近在做Arduino红外遥控的研究,在学习了版主LEO大神的关于IRremote应用系列教程的文章http://www.geek-workshop.com/thread-3444-1-1.html后尝试自己制作。但遇到问题,特此来发帖求助。
我在制作一个多路的红外接收端,通常的红外接收器仅需要一个红外接收头即可,但因本人项目特殊,需要定义5个红外接收头,但实际编码操作后发现,IRremote库中的接受定义仿佛只能定义一个红外接收端口,例如
//本例来自于红外接收模块的IRremote自带范例
/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#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(); // 接收下一个值
}
}
其中的这一句代码
IRrecv irrecv(RECV_PIN);
仅能定义一个红外接收器的引脚,本人在尝试定义多个时,采用了以下三种定义方式:
第一种:
IRrecv irrecv1(RECV_PIN1);
IRrecv irrecv2(RECV_PIN2);
第二种:
IRrecv irrecv1(RECV_PIN1),IRrecv irrecv2(RECV_PIN2);
在实际运行后发现,Arduino仅能讲后定义的端口设定为红外接收端口,而之前定义的端口均消失无反应,个人推断问题应该是出现在IRremote的库中,但因本人才疏学浅,并不会修改库文件,特此来发帖,求大神讲解解决方案。。。感激不尽。。。
库文件地址http://www.geek-workshop.com/for ... 3fDQ5NjI5fDI0MzM%3D |
|