我尝试在我的Arduino项目中使用RTC DS1307,每次我运行我的代码时都会得到这个错误:RTC is not running。代码应该每分钟:10sc点亮一次LED,每分钟:20s关闭一次。
这是我写的代码:
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
RTC_DS1307 rtc;
void setup ()
{
Serial.begin(57600);
pinMode(0, OUTPUT);
#ifdef AVR
Wire.begin();
#else
Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
#endif
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
}
if (! rtc.isrunning()){
Serial.println("RTC is not running");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop () {
DateTime now = rtc.now();
lcd.setCursor(0, 2);
Serial.println(now.month(),DEC);
lcd.print(now.year(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.day(), DEC);
lcd.print(' ');
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
if (now.second() == 10 )
{
digitalWrite (0, HIGH);
Serial.println("high");
}
else if (now.second() == 20 )
{
digitalWrite (0, LOW);
Serial.println("low");
}
delay(1000);
}我使用了Arduino站点上的RTClib.h库。有什么想法请告诉我。
发布于 2018-01-01 20:07:08
我刚刚在一个运行良好的程序中遇到了同样的问题--使用相同的代码。我想电池连接断了,可能是短暂的。
我发现它确实需要初始化代码,例如...
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));在电池拆卸故障后发送。在那之后又开始工作了。
https://stackoverflow.com/questions/43845256
复制相似问题