使用 Arduino 的实时时钟 (RTC) 模块(DS1307 和 DS3231)指南

释放双眼,带上耳机,听听看~!

本文章介绍如何在 Arduino 中使用 DS1307 实时时钟 (RTC) 模块。您也可以按照本指南使用 DS3231 RTC 等其它类似模块。

实时时钟模块介绍

实时时钟模块如下图所示(正面图和背面图)。

使用 Arduino 的实时时钟 (RTC) 模块(DS1307 和 DS3231)指南

首次使用该模块时,需要焊接一些引脚。

如上图所示,模块安装了备用电池。这样,即使 Arduino 没有为模块供电,模块也能保留时间。这样,每次开关模块时,时间都不会重置。

该模块使用 I2C 通信。这意味着它只需使用 2 个引脚就能与 Arduino 通信。

 引脚接线

RTC 模块的接线非常简单!

Pin  连接 Arduino Uno 的线路
SCL A5
SDA A4
VCC 5V
GND GND

如果您使用的是其它 Arduino 板而不是 uno,请查看它们的 SCL 和 SDA 引脚。

  • Nano:SDA(A4);SCL(A5)
  • MEGA:SDA(20);SCL(21)
  • Leonardo: SDA(20);SCL(21)

示例:在串行监视器上显示日期和时间在串行监视器上显示日期和时间

本例在串行监视器上显示日期和时间。

 所需部件

在这个例子中,您需要以下部件(点击下面的链接,在 Maker Advisor 找到最优惠的价格):

  • Arduino UNO – 阅读最佳 Arduino 入门套件
  •  DS1307 RTC 模块
  •  连接线

 示意图

如下图所示,将实时时钟模块连接到 Arduino。

使用 Arduino 的实时时钟 (RTC) 模块(DS1307 和 DS3231)指南

 代码

与 RTC 合作需要两个重要步骤:

  • 设置当前时间,以便 RTC 知道现在的时间
  • 保留时间,使 RTC 即使在关闭时也能始终提供正确的时间

在实时时钟中设置当前时间

要设置当前时间,您需要更改所提供的代码。

  • 使用函数 setDS3231time() 设置当前时间

使用 Arduino 的实时时钟 (RTC) 模块(DS1307 和 DS3231)指南

函数的参数用红色标出:秒、分、小时、星期、日期、月份和年份(按此顺序排列)。星期日是一周中的第 1 天,星期六是第 7 天。 别忘了取消这行代码的注释。

设置好当前时间后,您就可以上传所提供的代码,并按要求进行修改。

所提供的代码由 tronixstuff 的 John Boxall 编写。你可以在这里阅读他的教程。

保留实时时钟中的时间

如果不想每次关闭 RTC 时都重置时间,则应执行以下操作:

  • 设置时间后,您应该注释设置时间的函数,然后再次上传代码。

使用 Arduino 的实时时钟 (RTC) 模块(DS1307 和 DS3231)指南

这是设置 RTC 时间的重要步骤。如果不这样做,每次重置 RTC 时,它都会显示之前设置的时间,而不是当前时间。

 演示

以 9600 波特率打开串行监视器,就能看到结果。

这是串行监视器显示的当前日期和时间。

使用 Arduino 的实时时钟 (RTC) 模块(DS1307 和 DS3231)指南

 总结

希望本指南对您有所帮助。

RTC 模块非常有用,可以用作时钟、计时器等。

给TA打赏
共{{data.count}}人
人已打赏
ArduinoArduino-入门免费项目

带有 PIR 运动传感器的 Arduino

2023-7-24 1:31:08

ArduinoArduino-进阶动态

Arduino如何使用BME280传感器(压力,温度,湿度)

2023-12-7 10:32:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();