制作四驱车机器人时想用手边的红外遥控器做一个简单的控制,编译出现“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