回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕学编程】Arduino动手做(245)---DS3231 高精度时钟模块之使用 DS3231.h 库的应用案例 简单

头像 驴友花雕 2025.05.11 10 0

00.jpg
02.jpg
04-.jpg
04--.jpg
05.jpg

  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)

  实验二百四十五:DS3231 高精度时钟模块  IIC/I2C接口 实时计时传感器

  项目之三:使用 DS3231.h 库的应用案例

 

 

安装DS3231.h 库(https://github.com/NorthernWidget/DS3231/tree/master)

 


08-4.jpg

  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百四十五:DS3231 高精度时钟模块  IIC/I2C接口 实时计时传感器
 项目之三:使用 DS3231.h 库的应用案例

实验开源代码

 

代码
/*
  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百四十五:DS3231 高精度时钟模块  IIC/I2C接口 实时计时传感器
  项目之三:使用 DS3231.h 库的应用案例
*/

#include <Wire.h>
#include <DS3231.h>  // 使用 DS3231 库

// 创建 DS3231 RTC 对象
DS3231 rtc;

void setup() {
    Serial.begin(115200);  // 初始化串口通信
    Wire.begin();  // 启动 I2C
}

void loop() {
    rtc.getTemperature();  // 确保数据更新

    // 读取时间(确保传入参数)
    bool h12, PM_time;
    Serial.print("时间: ");
    Serial.print(rtc.getHour(h12, PM_time));
    Serial.print(":");
    Serial.print(rtc.getMinute());
    Serial.print(":");
    Serial.println(rtc.getSecond());

    // 读取日期
    bool centuryFlag;
    Serial.print("日期: ");
    Serial.print(rtc.getYear());
    Serial.print("/");
    Serial.print(rtc.getMonth(centuryFlag));
    Serial.print("/");
    Serial.println(rtc.getDate());

    // 获取 DS3231 内部温度
    Serial.print("温度: ");
    Serial.print(rtc.getTemperature());
    Serial.println("°C");

    Serial.println();  // 美化输出
    delay(1000);  // 每秒刷新
}

简单解读

这段代码使用 DS3231 实时时钟(RTC)模块 通过 I2C 通信 获取 当前时间、日期和温度,核心逻辑如下:

1. 初始化 RTC
✅ DS3231 rtc; → 创建 DS3231 实例(I2C 默认地址) 
✅ Wire.begin(); → 启动 I2C 通信

2. 读取时间
✅ rtc.getHour(h12, PM_time); → 获取小时(24小时制) 
✅ rtc.getMinute(); → 获取分钟 
✅ rtc.getSecond(); → 获取秒

3. 读取日期
✅ rtc.getYear(); → 获取年份 
✅ rtc.getMonth(centuryFlag); → 获取月份(需要参数) 
✅ rtc.getDate(); → 获取当天日期

4. 读取温度
✅ rtc.getTemperature(); → 获取 DS3231 内置温度传感器的值

5. 串口输出
✅ 格式化打印时间、日期、星期和温度,确保显示清晰

6. 采集间隔
✅ delay(1000); → 每秒更新一次数据

这段代码让 DS3231 RTC 模块不断读取当前时间、日期和温度,并在串口显示。


实验串口返回情况

 

06-.jpg
08-6.jpg

评论

user-avatar
icon 他的勋章
    展开更多