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() 这两个关键函数给更新掉