制作四驱车机器人时想用手边的红外遥控器做一个简单的控制,编译出现“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
/Users/<username>/Documents/Arduino/libraries/
2. 红外遥控程序注意将
IRremote
文件夹 复制到Arduino安装目录下面libraries 文件夹下面 ,否则
编译
会
出现
C:\Program Files (x86)\Arduino\librar...
解决Arduino ide 遇到的问题
error
: '
TKD
2' was not
declared
in this
scope
今天开始学习arduino接红外接收器来接受遥控器发送的指令。控制一些外围设备。
使用简单的例子
//////////////////////////////////////////////////////////
///////arduino接红外接收器来接受遥控器发送的指令
//这段代码来自
IRremote
库中examples中的 IRrecvDem...
原文地址:https://www.cnblogs.com/hgxh/p/4109012.html
网上有关红外接收的帖子不少,但是关于使用arduino自制红外发射器的帖子却很少,经过网上搜索和自己摸索,给大家发个有arduino自制红外发射器控制led亮灭的例子。关于本例我使用了两块arduino板,一块用于发射,一块用于接收。
一、红外发射(开发板一)
const int PIN = 11;//接红外接口
const int LED =13;//接灯
IRrecv HW(PIN);//声明一个IRrecv类型的对象,并接到PIN,也就是11脚
decode_results results;//声明一个decode_results类型的对象results,存放红外接收的信号解码...
前段时间在网上看大关于ESP8266能直接调用库能使用红外发送和接收,制作遥控器。
Arduino 项目->加载库 搜索:
IRremote
ESP8266 添加就OK了
以下是测试代码:(群友提供:感谢!)
#include <Arduino.h>
#include <
IRremote
ESP8266.h>
#include <IRrecv.h>
#include <IRut
之前用过arduino链接红外接收器来接受遥控器发送的指令。控制一些外围设备。用的是github上下载的库。
这几天又要用的时候。发现遇到了个问题。首先一个错误是
D:\Tools\Arduino\libraries\Robot
IRremote
\src\
IRremote
Tools.cpp:5:16:
error
: ‘
TKD
2’ was not
declared
in this
scope
int ...
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
// pinMode(LED_PIN, OUTPUT);
// digitalWrite(LED_PIN, HIG
这个错误通常
出现
在 Arduino 代码中,是因为你在使用 `analogWrite` 函数之前没有在代码中包含 `analogWrite` 函数所在的库文件。`analogWrite` 函数通常在 `Arduino.h` 或 `WProgram.h` 库文件中定义,因此你需要在代码中添加如下代码:
```c++
#include <Arduino.h>
如果上述代码仍然无法解决问题,可能是因为你的 Arduino 板子不支持 `analogWrite` 函数。在这种情况下,你需要查看你的板子的规格说明,以确定它是否支持模拟输出。