所以我尝试使用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);
}
答案 0 :(得分:1)
我刚刚开始玩Arduino而且也一样?我的套件附带的DS1302 RTC板有问题。我正在使用DS1302RTC库(Timur Maksimov 2014年?)。
在我的情况下,我将问题缩小到电源。
我将延迟循环减少到100毫秒,并且基本上观察到数据在每秒钟的时间内被破坏。也就是说,我得到了8-9个良好的读数,然后是8-9次重复读取。
如果我直接从Uno板上取电,一切正常。当我从我的b /板上的导轨上取电时,它会再次播放。 (重复)
我还考虑过串口线缆是否受到了一些干扰,但如果我将电缆绞合在一起或为引脚选择宽间距,它似乎没有什么区别。
如果这适用于其他人,请回复此处。谷歌告诉我这个问题很常见,但没有提供很多解决方案。
答案 1 :(得分:0)
我放弃了,决定改用另一个库。似乎问题在于图书馆本身。
我尝试删除与LCD
相关的任何内容,但它没有效果。我尝试删除与Serial
相关的任何内容,但仍然无效。
我使用了不同的库,现在它适用于我!