制作四驱车机器人时想用手边的红外遥控器做一个简单的控制,编译出现“error: ‘TKD2′ was not declared in this scope”的错误。
1.原因分析
使用红外遥控器需要包含红外遥控头文件
#include <IRremote.h> //调用IRremote.h库编译出错提示为:提示出错的原因是:IRremoteTools冲突。百度一下原因为Arduino 1.5.5 r2以后加入的RobotIRremote 库与 IRremote库有冲突。在IRremoteTools.cpp中有如下代码:
#include "IRremote.h"
#include "IRremoteTools.h"
#include <Arduino.h>
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
IRrecv irrecv(RECV_PIN); // an instance of the IR receiver object
decode_results results; // container for received IR codes上述代码中将TKD2赋予 RECV_PIN,而我们写的代码里并没有定义TKD2,因此编译程序执行到这时报错。2. 删除或剪切走冲突文件
解决方法是在Arduino安装目录…Arduino\libraries\RobotIRremote\src 文件夹下将如下两个文件删除或剪切到非编译搜索路径下的某个位置即可
本机安装的路径为:C:\ProgramFiles (x86)\Arduino\libraries\RobotIRremote\src
本文介绍了解决Arduino项目中使用红外遥控器时遇到的编译错误问题。错误源于IRremoteTools库与RobotIRremote库冲突导致。文章提供了详细的错误分析及解决步骤,包括如何避免TKD2未声明的错误。
2792

被折叠的 条评论
为什么被折叠?



