Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Arduino数据记录屏蔽上使用实时时钟(RTC)_Arduino_Real Time Clock - Fatal编程技术网

在Arduino数据记录屏蔽上使用实时时钟(RTC)

在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(

我试图为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);
}

有人知道如何解决这个问题吗?
非常感谢

我认为您没有包括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