首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTC未运行

RTC未运行
EN

Stack Overflow用户
提问于 2017-05-08 18:24:55
回答 1查看 3.1K关注 0票数 0

我尝试在我的Arduino项目中使用RTC DS1307,每次我运行我的代码时都会得到这个错误:RTC is not running。代码应该每分钟:10sc点亮一次LED,每分钟:20s关闭一次。

这是我写的代码:

代码语言:javascript
复制
#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库。有什么想法请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2018-01-01 20:07:08

我刚刚在一个运行良好的程序中遇到了同样的问题--使用相同的代码。我想电池连接断了,可能是短暂的。

我发现它确实需要初始化代码,例如...

代码语言:javascript
复制
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

在电池拆卸故障后发送。在那之后又开始工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43845256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档