0

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

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

这是串行监视器和草图的快照

我似乎找不到问题。

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

我是这种环境的新手,因此非常感谢任何类型的帮助。这是我的草图。

#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 库

4

2 回答 2

1

我刚开始玩 Arduino 并且有同样的情况?我的套件随附的 DS1302 RTC 板有问题。我正在使用 DS1302RTC 库(Timur Maksimov 2014?)。

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

我将延迟循环减少到 100 毫秒,并且基本上观察到数据在每秒的滴答声中被破坏。即,我得到 8-9 次良好读取,然后是 8-9 次损坏读取。

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

我还考虑了串行电缆是否受到干扰,但如果我将电缆扭在一起或选择宽间距的引脚似乎没有什么区别。

如果这对其他人有用,请在此处回复。谷歌告诉我这个问题很常见,但没有提供很多解决方案。

于 2018-06-08T09:18:08.577 回答
0

我放弃了,只是决定改用不同的库。似乎问题在于图书馆本身。

我尝试删除与 相关的任何内容LCD,但没有成功。我尝试删除任何相关Serial但仍然没有工作。

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

我使用的新图书馆

于 2017-03-06T16:09:10.153 回答