yuancr 2019-06-21
本文阐述了如何在Arduino上使用基于DS1302时钟芯片的时钟模块计时.
应用场景:新年钟声倒计时 + LED显示 + LED显示华彩(显示特效)
DS1302 RTC模块
Arduino Uno R3
USB 电源
杜邦线
最开始把时钟模块的VCC连接到 Arduino Uno 的5V输出脚, 结果时钟走的太快了, 最后发现是电压太高, 应该接到3.3V的输出引脚.




#include <Wire.h>
#include <DS1302.h>
DS1302 rtc(2, 3, 4); // RST, DAT, CLK
void getdatetime()
{
Serial.println(rtc.getDateStr(FORMAT_LONG, FORMAT_LITTLEENDIAN, '/'));
Serial.print(rtc.getDOWStr());
Serial.print(" ");
Serial.println(rtc.getTimeStr());
}
void setup()
{
Serial.begin(9600);
// 设置时间后, 需要注释掉设置时间的代码,并重新烧录一次. 以免掉电重新执行setup中的时间设置函数.
rtc.halt(false);
rtc.writeProtect(false);
rtc.setDOW(SATURDAY);
rtc.setTime(17, 22, 30);
rtc.setDate(31, 12, 2016);
rtc.writeProtect(true);
}
void loop()
{
getdatetime();
delay(1000);
}输出结果

第三步:通过 arduino 软件选择对应的网络端口就可以进行固件更新了,不过更新的时候要注意不能将 Arduino.begin() 和 ArduinoOTA.handle() 这两个关键函数给更新掉