|
|
本帖最后由 knightsky 于 2014-10-14 16:49 编辑
我想用arduino同时进行红外发射和接收,自发自收实验。发射头和接收头同时连接在板子上,用下面的程序。先进行红外发射,然后接收,点亮led。可是只能发射,不能进行接收。这时用外部的遥控器也不能被接收了。这是怎么回事?串口里只会显示发射信息。我该如何进行修改?请大家帮忙。
- #include <IRremote.h> // 使用IRRemote函数库
-
- const int irReceiverPin = 11; // 红外接收器的 OUTPUT 引脚接在 PIN2 接口 定义irReceiverPin变量为PIN2接口
- int led=13;
- IRrecv irrecv(irReceiverPin); // 设置irReceiverPin定义的端口为红外信号接收端口
- IRsend irsend;
- decode_results results; // 定义results变量为红外结果存放位置
-
- void setup()
- {
- Serial.begin(9600); // 开启串口,波特率为9600
- irrecv.enableIRIn(); // 启动红外解码
- }
-
- void loop()
- {
- Serial.println("SendIR: ");
- irsend.sendNEC(0xC26BF044, 32);
- delay(1000);
- if (irrecv.decode(&results)) { // 解码成功,把数据放入results变量中
- if (results.value==0xC26BF044){
- digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(1000); // wait for a second
- digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
- delay(1000);
- }
- // 把数据输入到串口
- Serial.print("irCode: ");
- Serial.print(results.value, HEX); // 显示红外编码
- Serial.print(", bits: ");
- Serial.println(results.bits); // 显示红外编码位数
- irrecv.resume(); // 继续等待接收下一组信号
- }
- delay(600); //延时600毫秒
- }
复制代码 |
|