在Arduino数据记录屏蔽上使用实时时钟(RTC)
我试图为Arduino设置并读取Adafruit数据记录屏蔽上的时间,但Adafruit网站上的开放源代码似乎不起作用,因为它返回了几个错误,例如“RTC_DS1307”没有命名类型,并且说有几个变量超出了范围。代码是:在Arduino数据记录屏蔽上使用实时时钟(RTC),arduino,real-time-clock,Arduino,Real Time Clock,我试图为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(
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);
}
有人知道如何解决这个问题吗?
非常感谢 我认为您没有包括LIB的正确标题 试着改变
#include "RTCLib.h"
到
确保您有适当的屏蔽库和标题。这可能晚了几个月,但在当前项目文件夹中包含RTCLib.h查找,而在libraries文件夹中包含查找。如果上面的代码在草图中,即不是库中的示例文件,则更改include语句可能会修复代码。我也遇到了同样的问题。当我提取zip文件时,它似乎在另一个文件中创建了rtc文件。因此,无论何时在运行草图时调用库,它都无法找到它,因为头文件位于另一个文件夹中 您需要做的只是确保复制RTClib文件夹,该文件夹直接包含Arduino库中的头文件 不要复制包含RTClib文件夹的文件夹
对不起,我的英语不是母语。您应该使用Arduino IDE中提供的导入库功能 从主菜单中选择
Sketch | Import Library | Add library
并提供保存库文件的文件夹的路径
如果要创建使用该库的草图,只需选择
Sketch | Import library
然后从列表中选择库名称。正确的标题将自动包含在草图顶部。我刚刚遇到了完全相同的问题,并通过以下方式解决了它: 草图在以下位置查找RTC库:
C:\users\<userid>\Documents\Arduino\libraries
您必须自己安装库,并在执行此操作之前关闭Arduino IDE的所有实例,因为它仅在启动时检测库:
从以下网址下载:
提取zip文件
将名为RTClib master的两个文件夹的内部重命名为RTClib note-这是包含readme.txt文件以及其他文件的文件夹
将此文件夹移动到上述库目录
重新启动IDE
请提供您正在使用的RTClib的链接。
C:\users\<userid>\Documents\Arduino\libraries