RTC 模块:简单项目的绝对指南
您有需要精确计时的电子设备吗?或者您的项目是否需要您计算秒、分钟、小时甚至月?
好吧,如果您不知道该怎么做,请不要担心,您来对地方了。涉及计时的项目,即使没有电源,也可能很棘手。谢天谢地,我们已经为您服务了。
您只需要一个实时时钟 (RTC) 模块。因此,在本文中,我们将了解有关 RTC 模块的所有内容,并向您展示如何使用 RTC 模块电路制作一个简单的项目。
你准备好了吗?那么,我们开始吧!
什么是 RTC 模块?
RTC 模块
实时时钟 (RTC) 是一种集成电路时钟模块,通常在现代计算机、服务器或嵌入式系统中使用。此外,RTC 模块有一个目的;计时。
该设备可以计算秒、分钟、小时和年。此外,它还能够准确处理各种计时应用。
RTC 模块如何工作?
由于 RTC 具有如此重要的作用,即使系统关闭,它也能保持时间。出于这个原因,RTC 可以作为触发器,在发生诸如闹钟或移动设备上的预定电源等事件时打开系统。
RTC 如何实现这一目标?好吧,这个集成电路在不同于为其系统供电的电源上工作。因此,RTC 可以在低功率情况下或停电时连续运行。另外,您只需要一点点电流即可运行 RTC。
此外,较旧的 RTC 模块以锂电池作为备用电源,而较新的版本则使用超级电容器或辅助电池。现在,两种 RTC IC 之间存在差异。
带有超级电容器的实时时钟模块具有可充电功能,您可以将它们焊接到电路上。另一方面,带有辅助电池的 RTC 更为常见,因为您可以在大多数消费级主板上找到它们。在这种情况下,RTC 由单个电池供电。因此,当您卸下这块电池时,它会重置 RTC 并将其发送回起点。
此外,实时时钟模块利用晶体振荡器来调节时间。因此,它们与常规硬件时钟不同,因为它们不需要时钟信号。
DS3231 RTC 模块特性和规格
DS3231模块的特点和规格如下:
特点
- DS3231 RTC 模块能够以秒、分钟、小时、天、月和年计数
- 无需大功率即可运行
- 它使用 CR2032 电池作为备用电源。电池可持续使用长达三年。
- 体积小
- 您可以将 DS3231 RTC 模块用作老化微调的寄存器
- 您可以对该模块的方波输出进行编程
- 它带有一个数字温度传感器,具有额外 3°C 的精度
- RTC 模块使用 400Khz I2C 接口
- 它还有两个时间闹钟
- 此 RTC 模块的精度为:+3.5ppm 至 -3.5ppm(-40°C 至 +85°C),+2ppm 至 -2pmm(0°C 至 +40°C)
- 一旦出现电源故障,它会自动切换到电池供电
规格
- DS3231 RTC 模块在以下电压下工作:2.3v – 5.5v
- 您可以在低电压下使用此 RTC 模块
- 使用电池供电时,仅消耗 500mA
- SDA 和 SCL 最大电压为 VCC =0.3V
- 工作温度为 -45°C 至 +80°C
应用程序
以下是了解 DS3231 应用时需要考虑的一些案例:
- 如果您担心电路的功耗问题,DS3231 不需要高功率即可运行。因此,您可以在移动系统应用程序或计算机外围设备上使用此模块。
- 尽管市场上有大量 RTC 模块,但 DS3231 以其一流的精度而闻名。因此,如果您正在为您的项目寻找准确的时间和日期,DSC3231 可以满足您的需求。与其他 RTC 模块相比,DS3231 能够保持时间更新。
- 如果您需要快速通信,DS3231 RTC 模块可以与任何快速 TWI 接口进行通信,使其成为机器人、游戏和服务器应用等应用的首选。
- 此外,您还可以使用 DS3231 12 小时和 24 小时的方法来查找应用程序,尤其是在 GPS 应用程序中。
- 它具有一些闹钟属性和温度传感器,使其对公用事业电表应用等其他几个应用更加有用。
DS3231 RTC 引脚配置
DS3231 RTC 引脚配置
DS321 有六个端子。但是,不必使用这些引脚中的两个。因此,我们主要有四个端子或引脚。您可以在模块的另一侧看到它们。 DS3231 RTC模块的管脚配置如下:
PIN 名称 | 描述 |
VCC | 连接到电源的正极 |
接地 | 接地 |
SDA | 串口数据的管脚(I2C接口) |
SCL | 串行时钟的管脚(I2C接口) |
SQW | 方波输出引脚 |
32K | 32k 振荡器的输出 |
如何使用 DS3231 RTC 模块
您只能通过 I2C 接口与 DS3231 RTC 模块进行通信。 I2C 接口处理从 DS3221 发送和接收的数据。因此,您可以通过 I2C 获取任何时间和日期信息。
DS3231 和 I2C
此外,模块和 I2C 之间的传输很复杂。此外,通信以字节格式进行。因此,最好使用专门针对 DS3231 编写的库。为什么?好吧,使用库可以改善沟通。因此,您可以下载 DS3231 库并使用程序调用它们。
因此,一旦包含头文件,控制器就会开始通信并向您显示时间和日期。更重要的是,您可以使用这些库轻松控制和设置警报。
此外,当电量不足或没电时,RTC模块会自动从电池取电,让芯片持续提供准确的时间和数据。一旦系统重新启动,控制器和模块之间的通信就可以继续正常进行。
项目:Arduino 日历时钟
在本节中,我们将学习如何在 Arduino 中使用实时时钟并构建 Arduino 日历时钟项目。
电路设计
这是使用 DS3231 RTC 模块的简单 Arduino 日历时钟的设计。由于 IC2,我们将所有设备连接到仅由四根线组成的公共总线:
Arduino 日历时钟的电路图
需要的组件
以下是本项目所需的材料:
- (1) Arduino Uno
- (1) 面包板
- (1) 16×2 I2C 字符 LCD
- 跳线
- (1) DS3232 实时时钟模块
代码
在这里,我们将使用库并创建自定义函数,以使创建我们的代码更容易、更易读。因此,本项目将使用以下库:
- 电线。 I2C 接口的 h 库
- 用于 I2C 16×2 LCD 模块的 LiquidCrystal_I2C.h 库(由 Frank de Brabander 编写)
- 用于 DS3231 RTC 模块的 RTClib.h 库(由 Adafruit 提供)
下载这些库后,通过 #include 将它们添加到您的代码中 关键字。所以,有了这个,我们将设置两个对象。第一个是 lcd(),另一个是 rtc。这两个对象将有助于与 LCD 和 DS3231 模块进行通信。
LCD() 和 rtc 的代码
接下来,创建两个自定义函数,以便您轻松管理代码。 updateRTC() 是您将编写的第一个函数。它是向用户询问当前日期和时间并使用输入更新 RTC 的内部时钟的功能。
updateRTC() 的代码
接下来,创建两个自定义函数,以便您轻松管理代码。 updateRTC() 是您将编写的第一个函数。它是向用户询问当前日期和时间并使用输入更新 RTC 的内部时钟的功能。
updateRTC() 的代码
您将创建的下一个函数是 updateLCD() 函数。它负责更新 LCD 将显示的文本。
updateLCD() 2 的代码
创建代码的最后一步是为 Arduino 添加常规函数:setup() 和 loop()。下面是这两个函数的代码:
代码 设置()
代码 循环()
最后,上传您的代码,您的 Arduino Uno 应该开始在 LCD 上显示日期和时间。
四舍五入
RTC 模块是一种为电路添加计时功能的廉价且简单的方法。我们向您展示的只是表面上的一个划痕。如果你对它进行更多的修改,你会发现许多其他有趣的方式来使用这个模块。
值得一提的是,如果您在市场上找不到 DS3231,那么 DS12C997 和 DS1307 是值得的等价物。此外,对于上面提到的 Arduino 项目,您可以使用串行监视器来修改项目的日期和时间。您所要做的就是输入字母“U”并按照提示进行操作。这总结了这篇文章。如果您有任何问题,请随时与我们联系,我们很乐意为您提供帮助。
工业技术