我正在尝试设置和阅读Arduino Adafruit数据记录屏蔽的时间,但Adafruit网站上的开源代码似乎没有工作,因为它返回了几个错误,例如'RTC_DS1307'没有命名一个类型,并说几个变量在范围之外。代码是:
enter code here #include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Serial.begin(57600);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
// uncomment it & upload to set the time, date and start run the RTC!
//RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since 1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now.unixtime() + 7 * 86400L + 30);
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(3000);
}
有谁知道如何解决这个问题? 非常感谢!
答案 0 :(得分:1)
这可能要花费几个月的时间,但#include "RTCLib.h"
在RTCLib.h的当前项目文件夹中查找,而#include <RTCLib.h>
在库文件夹中查找。如果上面的代码在草图中(即不是库中的示例文件),更改include语句可能会修复您的代码。
答案 1 :(得分:1)
我遇到了同样的问题。似乎当我解压缩zip文件时,它在另一个文件中创建了rtc文件。因此,每当您在运行草图时调用库时,由于头文件位于另一个文件夹中,因此无法找到它。
您需要做的只是确保直接在Arduino库中复制RTClib文件夹(包含头文件)。
请勿复制包含RTClib文件夹的文件夹。
对不起我的英语我不是母语人士。
答案 2 :(得分:0)
我认为你没有包含libs的正确标题。
尝试更改
#include "RTCLib.h"
到
#include <RTCLib.h>
确保你有适当的图书馆和盾牌标题。
答案 3 :(得分:0)
您应该使用Arduino IDE中提供的导入库功能。
从主菜单中选择
Sketch | Import Library | Add library
并提供保存库文件的文件夹的路径。
如果要创建使用该库的草图,只需选择
Sketch | Import library
并从列表中选择库名称。正确的标题将自动包含在草图的顶部。
答案 4 :(得分:0)
我遇到了完全相同的问题并以这种方式解决了问题:
草图在以下位置查找RTC库:
C:\users\<userid>\Documents\Arduino\libraries
您必须自己安装库(并在执行此操作之前关闭所有Arduino IDE实例,因为它只在启动时检测库):