1. 概述
本模块主要用到高精度时钟芯片DS3231。它是低成本、高精度I2C实时时钟(RTC),具有集成的温补晶振(TCXO)和晶体。该器件包含电池输入端,断开主电源时仍可保持精确的计时。集成晶振提高了器件的长期精确度,并减少了生产线的元件数量。DS3231提供商用级和工业级温度范围,采用16引脚300mil的SO封装。模块自带2个定位孔,方便你将模块固定在其他设备。
2. 规格参数
工作电压:3.3-5V(DC)
接口:4PIN接口
通信接口:IIC总线接口,最高传输速度400KHz(工作电压为5V时)
时钟精度:0-40℃范围内,精度2ppm,年误差约1分钟
重量:3.5g
3. 连接图
4. 测试代码
#include <Wire.h>
#include “DS3231.h”
DS3231 RTC;
char weekDay[][4] = {“Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat” };
DateTime dt(2017, 5, 10, 15, 25, 30,4);
//设置开始时间为2017年5月10日15点25分30秒星期三
void setup ()
{
Serial.begin(57600);//设置波特率
Wire.begin();
RTC.begin();
RTC.adjust(dt);
}
void loop ()
{
DateTime now = RTC.now(); //获取当前时间
Serial.print(now.year(), DEC);//显示年
Serial.print(‘/’);
Serial.print(now.month(), DEC);//显示月
Serial.print(‘/’);
Serial.print(now.date(), DEC);//显示日
Serial.print(‘ ‘);
Serial.print(now.hour(), DEC);//显示小时
Serial.print(‘:’);
Serial.print(now.minute(), DEC);//显示分钟
Serial.print(‘:’);
Serial.print(now.second(), DEC);//显示秒
Serial.println();
Serial.print(weekDay[now.dayOfWeek()]);//显示星期
Serial.println();//自动换行
delay(1000);//延迟1S
}
5. 测试结果
按照上图接好线,烧录好代码,上电后,打开串口监视器,设置波特率57600,即可看到设置时间日期,如下图。
6. 相关库文件链接