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

【花雕学编程】Arduino动手做(245)---DS3231 高精度时钟模块之生成 9 单位的矩形波 简单

头像 驴友花雕 2025.05.11 5 0

00.jpg
02.jpg
04-.jpg
04--.jpg
06.jpg

  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百四十五:DS3231 高精度时钟模块  IIC/I2C接口 实时计时传感器
 项目之五:生成 9 单位的矩形波

实验开源代码

 

代码
/*
  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百四十五:DS3231 高精度时钟模块  IIC/I2C接口 实时计时传感器
  项目之五:生成 9 单位的矩形波
*/

#include <Wire.h>
#include <DS3231.h>

DS3231 rtc;  // 创建 DS3231 RTC 实例

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

void loop() {
    rtc.getTemperature();  // 刷新 RTC 数据
    int second = rtc.getSecond();  // 获取当前秒数
    int signal = (second % 2 == 0) ? 9 : 0;  // 每秒切换 0 和 9,生成矩形波
    
    Serial.println(signal);  // 发送数据到串口绘图器

    delay(100);  // 确保绘图器稳定显示波形
}

代码解读

这段代码使用 DS3231 实时时钟(RTC)模块 通过 I2C 通信 获取 当前秒数,并在串口绘图器生成矩形波,核心逻辑如下:

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

2. 读取秒数据
✅ rtc.getSecond(); → 获取当前秒数 
✅ second % 2 == 0 ? 9 : 0; → 偶数秒输出 9,奇数秒输出 0,形成矩形波

3. 发送数据
✅ Serial.println(signal); → 将数据发送至串口绘图器,用于实时显示波形

4. 采集间隔
✅ delay(100); → 每 100 毫秒更新一次数据,确保波形稳定

这段代码让 DS3231 模块精准控制矩形波,并在串口绘图器显示。

 

实验串口返回情况

 

08-7-.jpg

 

实验串口绘图器返回情况

 

08-8.jpg
08-9.jpg

 

05.jpg

评论

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