您好!欢迎光临深圳市润泽五洲电子科技有限公司,我们竭诚为您服务!

专业一站式SMTPCBA生产工厂

打造电子制造行业领军品牌

服务咨询热线:

13380355860
当前位置:首页>新闻资讯>技术文档 >

RTC 模块:简单项目的绝对指南

  • 发表时间:2021-10-09 08:27:43
  • 来源:本站
  • 人气:899

您有需要精确计时的电子设备吗?或者您的项目是否需要您计算秒、分、小时甚至月?好吧,如果你不知道如何去做,别担心,你来对地方了。涉及计时的项目,即使没有电源,也可能很棘手。谢天谢地,我们已经帮到你了。您只需要一个实时时钟 (RTC) 模块。因此,在本文中,我们将了解有关 RTC 模块的所有内容,并向您展示如何使用 RTC 模块电路制作一个简单的项目

你准备好了吗?那么,让我们开始吧!

什么是 RTC 模块?

实时时钟模块

实时时钟模块

资料来源:维基共享资源

实时时钟 (RTC) 是一种集成电路时钟模块,通常出现在现代计算机、服务器或嵌入式系统中。此外,RTC 模块有一个用途;计时。

该设备可以计算秒、分、小时和年。此外,它能够准确地处理各种计时应用程序。

这是最好的部分。

由于 RTC 具有如此重要的作用,它即使在系统关闭时也能保持时间。出于这个原因,RTC 可以作为触发器在闹钟或移动设备上发现的预定电源等事件中打开系统。

RTC 如何实现这一目标?嗯,这个集成电路的工作电源与为其系统供电的电源不同。因此,RTC 可以在低功率情况或电源故障时持续运行。此外,您只需要一点点电流即可运行 RTC。

此外,较旧的 RTC 模块采用锂电池作为备用电源,而较新的版本使用超级电容器或辅助电池现在,两个 RTC IC 之间存在差异。 

带有超级电容器的实时时钟模块具有可充电功能,您可以将它们焊接到您的电路上。另一方面,带有辅助电池的 RTC 更为常见,因为您可以在大多数消费级主板上找到它们。在这种情况下,RTC 由一块电池供电。因此,当您取出此电池时,它会重置 RTC 并将其发送回其起点。 

此外,实时时钟模块利用晶体振荡器来调节时间。因此,它们不同于常规硬件时钟,因为它们不需要时钟信号。 

但这还不是全部。

RTC 经久耐用。它们可以持续五年甚至更长时间。但是,如果电池电量耗尽,您可能需要更换 RTC。此外,当电池没电时,您的系统会通过错误消息通知您。检测电池没电的另一种方法是发现系统的时钟变得奇怪或不稳定。因此,请始终维护您的 RTC,以确保您的系统持续运行。

现在,有各种类型的集成电路可用于 RTC 应用。其中一些包括 DS12C997 和 DS1307。但是,本文的重点将放在 RTC DS3231 模块上。

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 模块

  • 使用电池供电时,它仅消耗 500nA

  • SDA 和 SCL 最大电压为 VCC = 0.3V

  • 它的工作温度为 -45°C 至 +80°C

应用

以下是理解 DS3231 应用时需要考虑的一些案例:

  • 如果您担心电路的功耗问题,DS3231 不需要大量功率即可运行。因此,您可以在移动系统应用程序或计算机外围设备上使用此模块

  • 尽管市场上有大量的 RTC 模块,但 DS3231 以其一流的精度而闻名。因此,如果您正在为您的项目寻找准确的时间和日期,DSC3231 可以满足您的需求。DS3231 能够比其他 RTC 模块保持时间更新

  • 在您需要快速通信的情况下,DS3231 RTC 模块可以与任何快速 TWI 接口进行通信,使其成为机器人、游戏和服务器应用等应用的首选

  • 此外,您可以使用 DS3231 的 12 小时和 24 小时方法来查找应用程序——尤其是在 GPS 应用程序中

  • 它具有一些闹钟属性和温度传感器,使其对公用事业功率计应用等其他几种应用更有用

DS3231 RTC 引脚配置

DS3231 RTC 引脚配置

DS3231 RTC 引脚配置

资料来源:维基共享资源

DS321 有六个端子。但是,并非必须使用这些引脚中的两个。因此,我们主要有四个端子或引脚。您可以在模块的另一侧看到它们。DS3231 RTC模块的引脚配置如下:

密码名称描述
电压互感器连接到能源的正极
地线连接到地面
SDA串行数据引脚(I2C 接口)
SCL串行时钟引脚(I2C 接口)
SQW方波输出引脚
32K32k 振荡器的输出

如何使用 DS3231 RTC 模块

只能通过 I2C 接口与 DS3231 RTC 模块通信。I2C 接口处理从 DS3221 发送和接收的数据。因此,您可以通过 I2C 获取任何时间和日期信息。 

DS3231 和 I2C

DS3231 和 I2C

来源:快照

此外,模块和 I2C 之间的传输很复杂。另外,通信以字节格式进行。因此,最好使用专门针对 DS3231 编写的库。为什么?嗯,使用图书馆可以改善交流。因此,您可以下载 DS3231 库并使用程序来调用它们。 

因此,一旦您包含头文件,控制器就会开始通信并向您显示时间和日期。更重要的是,您可以使用这些库轻松控制和设置警报。

此外,当电量低或没有电时,RTC 模块会自动从电池取电,让芯片持续提供准确的时间和日期。一旦系统再次启动,控制器和模块之间的通信可以继续而不会出错。

项目:Arduino 日历时钟

在本节中,我们将学习如何在 Arduino 中使用实时时钟并构建一个 Arduino 日历时钟项目。 

电路设计 

这是使用 DS3231 RTC 模块的简单 Arduino 日历时钟的设计。由于 IC2,我们将所有设备连接到一条仅由四根线组成的公共总线:

Arduino日历时钟的电路图

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 的代码

来源:Pxhere(知识共享)

接下来,创建两个自定义函数,以便您可以轻松管理代码。updateRTC() 是您要编写的第一个函数。它是向用户询问当前日期和时间并使用输入更新 RTC 内部时钟的功能。 

updateRTC() 的代码

来源:Pxhere(知识共享)

您将创建的下一个函数是更新的 LCD() 函数。它负责更新 LCD 将显示的文本。

updateLCD() 的代码

来源:Pxhere(知识共享)

updateLCD() 2 的代码

来源:Pxhere(知识共享)

创建代码的最后一步是为 Arduino 添加常规函数:setup() 和 loop()。下面是两个函数的代码: 

设置代码() 

来源:快照

循环代码()

来源:Pxhere(知识共享)

最后,上传您的代码,您的 Arduino Uno 应该开始在 LCD 上显示日期和时间。

RTC 模块是一种为电路添加计时功能的廉价且简单的方法我们向您展示的只是表面上的划痕。如果您对它进行更多修改,您会发现许多其他有趣的方式来使用该模块。

值得一提的是,如果您在市场上找不到DS3231,那么DS12C997 和DS1307 是当之无愧的等价物。此外,对于上面提到的 Arduino 项目,您可以使用串行监视器来修改项目的日期和时间。您所要做的就是输入字母“U”并按照提示操作。

这篇文章到此结束。如果您有任何问题,请随时联系我们,我们将很乐意为您提供帮助。