极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10743|回复: 9

请大家看看,我不太会用IR

[复制链接]
发表于 2012-12-14 20:13:46 | 显示全部楼层 |阅读模式
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
  
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // start server
}
void loop() {
         if(irrecv.decode(&results))
         {  
           if(results.value == 0xB7D827){
           irsend.sendNEC(0x12EE00FF, 32);
           Serial.println('a');
           irrecv.resume();
  }

}
}
上面的是代码,遥控按下键,串口显示A,也发送了,但是就不能循环第二遍了,如果去掉这句  irrecv.resume(); 就开始一直循环接收到A,不管遥控按不按,这个是怎么回事??
回复

使用道具 举报

发表于 2012-12-14 22:24:23 | 显示全部楼层
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
  
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // start server
}
void loop() {
         if(irrecv.decode(&results))
         {  
           if(results.value == 0xB7D827){
           irsend.sendNEC(0x12EE00FF, 32);
           Serial.println('a');
             }

     irrecv.resume();
  //将这行代码放到if(results.value == 0xB7D827) 括号之外试试



}
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-14 22:35:21 | 显示全部楼层
tom 发表于 2012-12-14 22:24
#include

int RECV_PIN = 11;

还是不循环 只是执行一次A
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-14 22:44:01 | 显示全部楼层
irsend.sendNEC(0x12EE00FF, 32);
这个是发送
发送我另一个遥控器的代码
我想做个转发
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-14 23:31:04 | 显示全部楼层
如何能自动恢复默认的irrecv.decode(&results))的值这个是解决问题的关键,因为它是布尔型,并且无法释放
results.value
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-14 23:48:37 | 显示全部楼层
irrecv.enableIRIn();
我加了这句
然后只能读一次
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-14 23:50:31 | 显示全部楼层
代码成功
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
  
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // start server
}
void loop() {

         if(irrecv.decode(&results))
         {  
           if(results.value == 0xB7D827){
            
         irsend.sendNEC(0x12EE00FF, 32);
         irrecv.enableIRIn();//reset server
         
           Serial.println('a');
      
         
          }
          irrecv.resume(); //read new results

          }
      

}
回复 支持 反对

使用道具 举报

发表于 2012-12-16 17:14:04 | 显示全部楼层
前些天我也遇到了,受遥控的同时,加了另一组发送红外数据,,单独遥控没问题,但加上发送,发一次后遥控就没用了,但发送却正常
回复 支持 反对

使用道具 举报

发表于 2012-12-16 17:31:24 | 显示全部楼层
我用了你的 irrecv.enableIRIn();成功了!万分感谢啊!!!
回复 支持 反对

使用道具 举报

发表于 2013-9-6 09:20:07 | 显示全部楼层
有这个DallasTemperature库嘛?急求啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-8 13:30 , Processed in 0.039984 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表