在网上很少能看到有关RTC时钟的教程,有的话也是语焉不详,更多的是基于ESP8266的电子时钟,可惜宿舍网不稳定,不如使用自带电源的RTC模块显示时间,于是就做了这个桌面时间显示,下面提供一下思路
材料:Arduino Uno, DS3231, 中景园7针SPI 0.96寸 1306 OLED屏(4针的IIC也可以用 后续会讲),杜邦线,硬纸壳,3.7v升压模块,3.7v锂电池
1.连线
从图中可以看到Arduino的IIC接口是A4和A5,对应接上DS3231的四根管脚就可以(SDA和SCL)
2.DS3231设定
想要对DS3231进行校对和使用需要在网上下载对应的库文件,这里不建议用商家给的DS3231的官方库,缺少很多头文件,建议使用RTClib库,可以直接在管理库里搜索下载
首先校正现在时间:
提供几个谜一样的小技巧:
0.1 把//rtc.adjust的注释去掉即可设定时间
0.2 上传和编译占用一定的时间,建议提前9秒点上传按钮(这个时间自己试一下,不一定相同)
0.3 不要同时使用多个时间库,因为有些库关于周日是第一天还是周一是第一天有很大的争议,这就导致很多数据是错乱的
#include "RTClib.h"
RTC_DS3231 rtc;
.......
void setup () {
Serial.begin(9600);
if (! rtc.begin()) {
Serial.flush(