关于DS1307使用的一些问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 637|回复: 4

[未解决] 关于DS1307使用的一些问题

[复制链接]
发表于 2022-9-2 10:00 | 显示全部楼层 |阅读模式
各位大佬,小弟想请教一下关于DS1307的一点问题:

1.最近在做一个显示时间的小玩意,然后我用的开发板是Ardiuno uno r3,在开发板上上传程序后,一开始时间跟电脑的时间是对着的,后续再用电源去供电,发现时间显示总是会比实际时间慢一两分钟,请问这个有什么办法解决吗?
2.把程序烧录到PCB板子上之后,就没办法工作,一直报错couldn't find rtc
小弟用的RTC相关的代码是把例子程序简单改一下的:



// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include "RTClib.h"

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {
  Serial.begin(9600);

#ifndef ESP8266
  while (!Serial); // wait for serial port to connect. Needed for native USB
#endif

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // When time needs to be re-set on a previously configured device, the
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

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(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    delay(3000);
}




麻烦各位帮帮小弟了
发表于 2022-9-2 10:34 | 显示全部楼层
https://www.arduino.cn/thread-105413-1-1.html

看看是不是这个问题?
发表于 2022-9-2 16:52 | 显示全部楼层
ESP32 用 NTP 获得网络时间不是很方便吗, 何况RTC模块还涨价离谱
 楼主| 发表于 2022-9-6 19:05 | 显示全部楼层
Zoologist 发表于 2022-9-2 10:34
https://www.arduino.cn/thread-105413-1-1.html

看看是不是这个问题?

大佬 我现在弄上去之后,一段时间不用它时间不跟着更新 不知道为什么。就比如我昨天用了,今天晚上再打开,发现显示的时间是上午,这是为什么呀?
发表于 2022-9-6 19:56 | 显示全部楼层
努力学习的A 发表于 2022-9-6 19:05
大佬 我现在弄上去之后,一段时间不用它时间不跟着更新 不知道为什么。就比如我昨天用了,今天晚上再打开 ...

没遇到过你说的这个问题啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:30 , Processed in 0.071981 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表