37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
** 【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十五:DS3231 高精度时钟模块 IIC/I2C接口 实时计时传感器**
实验模块接线示意图
【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 通信 获取 当前秒数,并在串口绘图器生成矩形波,核心逻辑如下:
-
初始化 RTC
✅ DS3231 rtc; → 创建 DS3231 实例(使用默认 I2C 地址)
✅ Wire.begin(); → 启动 I2C 通信
✅ Serial.begin(9600); → 初始化串口通信 -
读取秒数据
✅ rtc.getSecond(); → 获取当前秒数
✅ second % 2 == 0 ? 9 : 0; → 偶数秒输出 9,奇数秒输出 0,形成矩形波 -
发送数据
✅ Serial.println(signal); → 将数据发送至串口绘图器,用于实时显示波形 -
采集间隔
✅ delay(100); → 每 100 毫秒更新一次数据,确保波形稳定
这段代码让 DS3231 模块精准控制矩形波,并在串口绘图器显示。
实验串口返回情况
实验串口绘图器返回情况