使用IRremote库红外遥控家里的电器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

使用IRremote库红外遥控家里的电器

  [复制链接]
发表于 2014-1-15 14:05 | 显示全部楼层
{:soso_e141:}这个库在1.5.5IDE上编译不过去,
发表于 2014-1-15 14:05 | 显示全部楼层
Arduino:1.5.5 (Windows 7), 板:"Arduino Uno"

Using library Robot IR Remote in folder: D:\Program Files\Arduino\libraries\RobotIRremote



D:\Program Files\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=155 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -ID:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files\Arduino\hardware\arduino\avr\variants\standard -ID:\Program Files\Arduino\libraries\RobotIRremote\src C:\Users\WANGXU~1\AppData\Local\Temp\build3925097172608981407.tmp\IRrecvDemo.cpp -o C:\Users\WANGXU~1\AppData\Local\Temp\build3925097172608981407.tmp\IRrecvDemo.cpp.o

D:\Program Files\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=155 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -ID:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files\Arduino\hardware\arduino\avr\variants\standard -ID:\Program Files\Arduino\libraries\RobotIRremote\src D:\Program Files\Arduino\libraries\RobotIRremote\src\IRremote.cpp -o C:\Users\WANGXU~1\AppData\Local\Temp\build3925097172608981407.tmp\src\IRremote.cpp.o

D:\Program Files\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=155 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -ID:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files\Arduino\hardware\arduino\avr\variants\standard -ID:\Program Files\Arduino\libraries\RobotIRremote\src D:\Program Files\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp -o C:\Users\WANGXU~1\AppData\Local\Temp\build3925097172608981407.tmp\src\IRremoteTools.cpp.o

D:\Program Files\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5: error: 'TKD2' was not declared in this scope
发表于 2014-2-23 22:49 | 显示全部楼层
心光 发表于 2013-12-13 22:59
void dump(decode_results *results)
{  int count = results->rawlen;  Serial.print("Raw (");  Serial. ...

我的理解是:USECPERTICK在库里是定义为50微秒,所以results->rawbuf*USECPERTICK是指高(低)电平持续的时间。同时为了区分高低电平,所以输出时正负数交替。
发表于 2014-4-5 08:51 | 显示全部楼层
我想问一下:
#include <IRremote.h>
IRsend irsend;
unsigned int buf[71]={8950,4350,650,1600,650,1600,650,1550,700,450,650,450,700,450,650,450,700,1600,650,1550,700,450,650,1600,650,450,700,450,650,450,700,1550,650,500,650,1550,700,1550,700,1550,700,450,650,1600,650,450,700,450,650,450,700,450,650,450,700,450,700,1550,650,450,700,1550,700,1550,650,1600,650,25986,9150,2100,650};
void setup()
{
}

void loop() {
  irsend.sendRaw(buf,71,38);
  delay(3000);
}
我的代码是这样的,但是空调没有反应呀,解码的程序时库里面自带的函数。。。
发表于 2014-4-5 11:57 | 显示全部楼层
我想问一下,红外发射头发射的距离太近,我该怎么提高距离?
发表于 2014-4-6 23:05 | 显示全部楼层
有其他的获取红外源码的方法吗。。这个方法有认真尝试。。但是同一个按键的源码 在数组中对应的 同一个数+或-50的变化很大。。。效果不是很好哦。。。
发表于 2014-4-6 23:13 | 显示全部楼层
你给的代码中:
int count = results -> rawlen;  中的->,
还有Serial.print(results -> rawbuf[i]*USECPERTICK); 括号中的
是什么意思哦。。能解释一下吗
发表于 2014-6-12 14:51 | 显示全部楼层
不得不吐槽下,Leonardo 的输出脚居然是在 13 号脚。。。。。。。天啊,这个问题搞了我2天都郁闷找不到原因,后来发现板上的 L 灯在狂闪,然后查了下github 上的修改日志才发现原来Leonardo 定义输出在 13 脚。

我之前也尝试过分析 IRremote 的代码找出原因,但是被以下的表象给欺骗了:
#elif defined(__AVR_ATmega32U4__)
  //#define IR_USE_TIMER1   // tx = pin 14
  //#define IR_USE_TIMER3   // tx = pin 9
  #define IR_USE_TIMER4_HS  // tx = pin 10

以为坑爹的设置在了 10 脚上,结果接到10 也没反应,又干脆接回 3 脚。来来回回检查代码、发射管、电路。。。。。

不过在调试过程也学到挺多了,比如可以用手机摄像模式来查看红外线管是否点着,或者干脆先用LED 来测试,最后在上红外管;还从别的帖子中学到DIY 发射模块。

希望给用Leonardo 板的同学一个参考吧。
发表于 2014-6-25 01:54 | 显示全部楼层
太赞了,学这个好好玩
发表于 2014-7-10 15:57 | 显示全部楼层
80BFF10E
Decoded NEC: 80BFF10E (32 bits)
Raw (68): 12882 8950 -4350 600 -1600 600 -500 600 -500 600 -500 600 -500 600 -500 600 -500 600 -500 600 -1600 600 -500 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -500 600 -500 600 -500 600 -1600 600 -450 650 -500 600 -500 600 -500 600 -1600 600 -1600 600 -1600 600 -500 600
为什么我按照LZ的方法设置了一遍,控制不了电视,我用另一个arduino 接收也接收不了,这是什么问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 03:42 , Processed in 0.156482 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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