(1)简介
D3231是高精度的I2C实时时钟(RTC),具有集成的温补晶振TCXO晶体,模块自带纽扣电池,在系统断开主电源后仍然能保持精确的计时。RTC保存秒、分、时、星期、日期、月和年的信息,提供两个可设置的日历闹钟和一个可设置的方波输出,地址和数据通过I2C双向总线串行传输。
模块参数
(1)工作电压:3.3V–5.5V
(2)时钟芯片:高精度时钟芯片DS3231
(3)时钟精度:0-40度范围内,精度2pm,年误差约1分钟
(4)2个日历闹钟可编程输出,年月日有效时间到2100年,芯片内部自带温度传感器,精度正负3摄氏度
(5)存储芯片:AT24c32(存储容量32k)
(6)可级联其他IIC设备,24c32地址可通过短路A0/A1/A2修改
(2)接线
DS3231时钟模块 | Arduino UNO |
---|---|
SCL | A5 |
SDA | A4 |
VCC | 5V |
GND | GND |
(3)实现过程(完整代码及函数头文件见文末链接)
时钟模块工作之前需要先同步设置下当前时间,时间设置后才能正常使用,时间设置后才能正常使用
时间、日期设置代码如下:
void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
// Initialize the rtc object
rtc.begin();
// The following lines can be uncommented to set the date and time
rtc.setDOW(FRIDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(21, 00, 30); // 设置时间为21:00:30
rtc.setDate(10, 24, 2020); // 设置日期为2020年10月24日
}
日期设置完成后方可显示出来,显示代码见下(以LCD1602上显示为例)
void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
// Wait one second before repeating :)
delay (1000);
}
显示结果如下:
(4)完整代码链接
CSDN下载
链接:https://download.csdn.net/download/u011816009/85842082
百度网盘下载
链接:https://pan.baidu.com/s/12MLNBpeF9jQDc4wzkuXn6A
提取码:803o