首页

Arduino DS3231 RTC模块教程

在这个项目中,我将讨论DS3231 RTC模块,该模块的重要组件和功能,最后向您展示如何接口DS3231实时时钟(RTC)模块与Arduino。

Arduino DS3231 RTC模块教程介绍

简介

实时时钟(Real Time Clock, RTC)是集成电路(IC)形式的计时设备,是许多时间关键应用程序和设备(如服务器、GPS、数据记录器等)的重要组成部分。

(adsense1)

我已经实现了两个项目使用实时时钟或RTC模块较早与两者8051单片机和Arduino。

有了8051,我在一个叫DS1307的项目中使用了RTC模块基于Rfid的停车系统.来到Arduino,我已经使用了相同的DS1307 RTCARDUINO闹钟而且Arduino实时时钟教程使用ds1307.如果你想要一个快速的参考,你可以通过提供的链接。

此外,在使用DS1307项目的Arduino实时时钟教程中,我已经讨论了对RTC的需求。所以,我不会再讲这方面了。我将直接跳到感兴趣的IC: DS3231 RTC IC。

DS3231 RTC IC的简要说明

DS3231是Maxim集成公司开发的RTC集成电路。它是一种低成本,非常精确的RTC IC,通过I2C接口进行通信。DS3231 RTC IC的一个有趣的特点是它集成了晶体振荡器和温度传感器,因此不需要连接外部晶体。

(adsense2)

它是SO-16包装。虽然它只需要可用的16引脚中的8引脚就可以发挥作用,但晶体的集成使IC体积更大,因此它被包装为16引脚IC而不是8引脚IC。

下图是DS3231 RTC IC的引脚图。

Arduino DS3231 RTC模块教程

DS3231 IC引脚描述

接下来是DS3231 IC的引脚描述,下表给出了引脚的简单功能概述。

密码

销的名字

描述

1

32 khz

32 khz输出

2 VCC

直流电源销

3.

INT / SQW 主动低中断或方波输出
4 RST

活性低的重置

5 - 12

数控 没有关系

13

接地

地面

14 V蝙蝠

电池的备用电源输入

15

SDA

串行数据I / O

16

sci

串行时钟输入

注意:引脚5 ~ 12为NC引脚。它们可以与GND绑定。

DS3231 RTC模块

使用DS3231 IC作为主要组件,一些制造商开发了DS3231 RTC模块与所有必要的组件。如今几乎所有可用的模块都由一个额外的IC 24C32N(或类似的东西)组成。这个辅助IC是一个32Kb大小的EEPROM IC。

由于RTC和EEPROM ic都是通过接口连接的I2C协议,你不需要任何额外的引脚,因为这两个I2C设备可以充当从机,而微控制器充当主机。

本项目使用的DS3231 RTC模块如下图所示。

DS3231实时时钟模块教程

由于RTC是关于保持时间不考虑电源供应,你可以连接一个3V CR2032锂电池到RTC IC保持时钟滴答。在DS3231模块中,有一个规定,你可以使用背面提供的电池座连接电池。

Arduino DS3231 RTC模块教程

DS3231 RTC模块的组成和引脚

如前所述,DS3231 IC和24C32 EEPROM IC是典型DS3231 RTC模块板上的主要组件。除此之外,还有其他一些组件,如Power ON LED,一些电阻,电容,一个电池座和连接微控制器的引脚。

下图显示了DS3231 RTC模块上的组件和引脚。

Arduino DS3231 RTC模块教程

DS3231 RTC模块与Arduino接口

如果您还记得一个使用MicroSD卡适配器的早期项目,我已经设置了一个简单的数据日志记录应用程序,其中传感器的数据被捕获并以文本文件的形式存储在MicroSD卡中。

通过将像DS3231这样的Real Time Clock集成到上述项目中,您可以使用准确的时间细节跟踪数据日志。

因此,将DS3231 RTC模块与Arduino对接具有众多的应用和优势。

线路图

Arduino DS3231 RTC模块教程电路图

组件的要求

  • Arduino UNO
  • DS3231 RTC模块
  • 16×2液晶显示器
  • 微型电路试验板
  • 10 kΩ锅
  • 连接电线

电路设计

首先,让我开始Arduino和DS3231之间的连接。由于它们之间的接口是I2C,请识别Arduino板上的I2C引脚(如果您使用的不是UNO板)。

在Arduino UNO中,A4和A5是SDA和SCL引脚。将这些引脚与DS3231模块对应的SDA和SCL引脚连接。同时,将RTC模块的VCC和GND连接到Arduino的+5V和GND。

Arduino DS3231 RTC模块教程电路设计

为了查看输出,我使用了LCD模块。将LCD的RS和E引脚连接到引脚7和6上。将LCD的D4-D7与Arduino的5-2连接。

代码

我使用了一个来自Adafruit的名为“RTClib”的特殊库(它是JeeLab的RTC库的一个分叉版本)。从链接并将解压的文件夹放在Arduino的libraries目录中。

由于通信方式是I2C,所以我也使用了“Wire”库。您不需要下载这个库,因为它与Arduino IDE集成。

工作

Arduino DS3231 RTC模块接口的工作非常简单。Arduino首先用它的从地址(DS3231 IC的0x68)初始化RTC模块。

然后,Arduino更新RTC IC的内部寄存器,显示代码编译和上传到Arduino的日期和时间。上传的日期和时间可以在液晶显示屏上查看。

Arduino DS3231 RTC模块教程输出

如果你想让DS3231模块在断开Arduino电源后仍然保持时间,可以连接一个3V锂电池。

应用程序

  • 服务器
  • 数据记录器
  • GPS模块
  • 电表

3反应

  1. 我在职业高中教过书。用arduino-uno,试着工作。我在skech窗口中编写代码有问题。
    非常感谢。

  2. 我试图运行这段代码,但它有错误。最后我意识到有wire.begin();在void设置中丢失。我添加了wire.begin();在void设置,最后我可以导出编译二进制为proteus模拟。它显示了精确的输出

  3. wire.begin ();在void设置中丢失。试着把给定的代码加起来。我刚刚发现丢失了什么,因为它显示了一些错误。

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map