DS3231 RTC 实时时钟模块 Arduino 使用详解
为什么需要外部 RTC
Arduino 內部计时器掉电丢失,DS3231 带纽扣电池(CR2032 可用 >1 年),掉电后仍能精准走时,支持闰年、大小月自动补偿,精度 ±2 ppm(年误差 <1 分钟)。
硬件接口
I2C 总线,仅 4 线:VCC(3.3/5V)、GND、SDA、SCL。Uno 对应 A4/A5,Mega 对应 20/21。
库安装与初始设置
推荐 Henning Karlsen 的 DS3231 库。首次使用需取消注释三行设置时间:
rtc.setDOW(WEDNESDAY); // 星期
rtc.setTime(12, 0, 0); // 12:00:00
rtc.setDate(1, 1, 2024); // 日期
上传后再注释掉重新上传,避免每次复位重置时间。
常用获取函数
rtc.getTimeStr()→ "HH:MM:SS"rtc.getDateStr()→ "DD/MM/YYYY"rtc.getDOWStr()→ 星期字符串rtc.getTemp()→ 芯片温度(浮点数)
LCD 显示示例
#include <DS3231.h>
#include <LiquidCrystal.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
void setup() {
rtc.begin();
lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Time: "); lcd.print(rtc.getTimeStr());
lcd.setCursor(0, 1);
lcd.print("Date: "); lcd.print(rtc.getDateStr());
delay(1000);
}
适用于数据记录、定时任务、时钟显示等所有需要可靠时间基准的项目。
制造工艺
- Arduino POV 时钟:自制视觉暂留 LED 显示器
- 打造安全的 Arduino RFID 门锁——分步指南
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Arduino Due 驱动 3.2″ TFT 实现温度监测与实时时钟
- 用 Arduino UNO 制作柏林时钟 – DIY LED 矩阵时钟
- TM1637 数码管时钟:Arduino Nano 实现时间设定与闹钟
- eDOT:基于 Arduino 的精密时钟与气象站,内置红外遥控
- Arduino 实时天气时钟:OLED 显示时间、日期与温度
- Arduino Nano 指纹传感器项目——分步教程
- 手把手教你打造树莓派 3 + Arduino 笔记本电脑
- Arduino Nano + DS3231 RTC 打造 128x64 LCD 智能时钟:模拟/数字双显、温度、极值记录
- 机器人实时 3D 变化检测 + AR 眼镜:守护士兵态势感知