|
[项目] 【花雕学编程】Arduino动手做(245)--DS3231模块11个小实验 |
代码简单解读 这段代码使用 DS3231 实时时钟(RTC)模块 和 OLED 显示屏,通过 I2C 通信 实现 时间显示,核心逻辑如下: 1. 初始化硬件 ✅ Wire.begin(); → 启动 I2C 通信 ✅ oled.begin(...); → 初始化 OLED 显示屏(I2C 地址 0x3C) ✅ rtc.begin(); → 初始化 DS3231 RTC 2. 设置 RTC 时间 ✅ rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); → 自动设置 RTC 时间为编译时的系统时间 ✅ 确保 RTC 运行正确,否则进入死循环 3. 获取当前时间 ✅ rtc.now(); → 从 RTC 读取当前时间 ✅ 格式化为 "小时:分钟:秒" 形式 并存入 String time 4. 显示时间在 OLED 屏幕上 ✅ oledDisplayCenter(time); → 将时间居中显示 ✅ 计算文本大小,确保居中 ✅ 清除屏幕并更新显示 5. 采集间隔 ✅ 每秒刷新一次时间,保证实时性 这段代码让 OLED 显示当前时间,并不断更新。 |
实验开源代码
|
代码简单解读 这段代码使用 DS3231 实时时钟(RTC)模块 和 OLED 显示屏 通过 I2C 通信 显示 当前日期、时间、星期和温度,核心逻辑如下: 1. 初始化硬件 ✅ Wire.begin(); → 启动 I2C 通信 ✅ display.begin(...); → 初始化 OLED 显示屏(I2C 地址 0x3C) ✅ rtc.begin(); → 初始化 DS3231 RTC 2. 设置 RTC 时间 ✅ rtc.lostPower(); → 如果 RTC 断电,则恢复默认时间 ✅ rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); → 自动设置 RTC 时间为编译时的系统时间 3. 读取当前时间 ✅ rtc.now(); → 从 RTC 获取当前时间 ✅ 格式化时间为 "YYYY-MM-DD" 和 "HH:MM:SS" 形式 4. 显示内容在 OLED 屏幕上 ✅ 日期 → display.print(now.year()); 等显示格式 ✅ 时间 → display.print(now.hour()); 等格式化 ✅ 星期 → display.print(daysOfTheWeek[now.dayOfTheWeek()]); ✅ 温度 → display.print(rtc.getTemperature()); 5. 采集间隔 ✅ delay(1000); → 每秒更新一次时间 这段代码让 OLED 显示当前时间,并持续更新。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed