Arduino RTC 模块显示备选信息

Arduino RTC Module shows alternate information

所以我尝试使用 DS1302 RTC 制作一个 Arduino LCD 实时时钟。

它工作并正确读取存储在 RTC 中的时间,但每隔一秒,显示空数据集

Here's a snapshot of the serial monitor and the sketch

我好像找不到问题。

它可能来自图书馆本身,但我是从一段视频中得到的,它在视频中似乎运行良好。

我是这个环境的新手,所以非常感谢任何类型的帮助。 这是我的草图。

#include <DS1302.h>
#include <Wire.h>  
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
DS1302 rtc(2, 3, 4);

void setup()
{
  rtc.halt(false);
  rtc.writeProtect(false);
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void loop()
{
  lcd.setCursor(4, 0);
  lcd.print(rtc.getTimeStr());
  Serial.print(rtc.getTimeStr());
  lcd.setCursor(0, 1);
  lcd.print(rtc.getDOWStr(FORMAT_SHORT));
  Serial.print(rtc.getDOWStr(FORMAT_SHORT));
  lcd.setCursor(6, 1);
  lcd.print(rtc.getDateStr());
  Serial.println(rtc.getDateStr());
  delay (1000);
}

DS1302 Library

我放弃了,只是决定改用其他库。看来问题出在图书馆本身。

我尝试删除与 LCD 相关的所有内容,但没有用。我尝试删除与 Serial 相关的任何内容,但仍然无效。

我使用了不同的库,现在它对我有用了!

The new Library I used

我刚开始玩 Arduino,有没有一样?我的套件随附的 DS1302 RTC 板出现问题。我正在使用 DS1302RTC 库(Timur Maksimov 2014?)。

就我而言,我将问题缩小到电源。

我将延迟循环减少到 100 毫秒,基本上观察到数据在每一秒的滴答声中都被破坏了。即我得到了 8-9 个正确的读取,然后是 8-9 个损坏的读取重复。

如果我直接从 Uno 板上取电,一切正常。当我从 b/board 上的 rails 取电时,它再次播放。 (可重复)

我也考虑过串口线是不是受到了一些干扰,但是如果我把线绞在一起或者选择宽间距的针脚似乎都没有什么不同。

已在此处回复以防其他人适用。 Google 告诉我这个问题很常见,但没有提供很多解决方案。