Arduino怎样连接DS3231实时时钟模块

电子说

1.2w人已加入

描述

简介

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

I早已使用实时时钟或RTC模块实现了几个项目,包括8051微控制器和Arduino。

8051,我在一个名为《的项目中使用了DS1307 RTC模块strong》基于RFID的停车场系统。来到Arduino,我在 ARDUINO ALARM CLOCK 和使用DS1307的ARDUINO实时时间教程中使用了相同的DS1307 RTC。如果你想要一个快速参考,你可以浏览提供的链接。

另外,在使用DS1307项目的Arduino实时时钟教程中,我已经讨论过需要一个RTC。所以,我不会再讨论那个方面了。我将直接进入感兴趣的IC:DS3231 RTC IC。

关于DS3231 RTC IC的简要说明

DS3231是由开发的RTC IC Maxim Integrated。它是一种低成本,极其精确的RTC IC,可通过I2C接口进行通信。 DS3231 RTC IC的一个有趣特性是它集成了晶体振荡器和温度传感器,因此您无需连接外部晶体。

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

下图显示了DS3231 RTC IC的引脚图。

Arduino

引脚说明DS3231 IC

进入DS3231 IC的引脚说明,下表给出了引脚的简单功能概述。

Pin Number 图钉名称描述

132KHz32KHz输出

2V CC直流电源引脚

3INT/SQW低电平有效中断或方波输出

4RST低电平有效复位

5 - 12NC无连接

13GND接地

14V BAT电池的备用电源输入

15SDA串行数据I/O

16SCL串行时钟输入

注意:引脚5-12是NC引脚。它们可以连接到GND。

DS3231 RTC模块

使用DS3231 IC作为主要部件,几家制造商开发了DS3231 RTC模块,其中包含所有必要的组件。目前几乎所有可用的模块都包含一个额外的IC,24C32N(或类似的东西)。该次级IC是一个32Kb大小的EEPROM IC。

由于RTC和EEPROM IC都通过I2C协议接口,因此这些I2C器件都不需要任何额外的引脚当微控制器充当主设备时,它可以充当从设备。

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

由于RTC完全是为了保持时间而不管电源如何,您可以将3V CR2032锂电池连接到RTC IC以保持时钟滴答作响。在DS3231模块中,您可以使用背面提供的电池座连接电池。

DS3231 RTC模块的组件和引脚

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

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

Arduino

DS3231 RTC模块与Arduino接口

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

通过将DS3231等实时时钟集成到上述项目中,您可以使用准确的时间详细信息跟踪数据日志。

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

电路图

Arduino

所需组件

Arduino UNO

DS3231 RTC模块

16×2 LCD显示器

迷你面包板

10KΩPOT

连接电线

电路设计

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

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

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

代码

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

由于通讯是I2C,我也使用了“电线”库。您无需下载此库,因为它与Arduino IDE集成。

工作

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

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

如果您希望DS3231模块保持时间均匀断开Arduino电源后,可以连接3V锂电池。

应用

服务器

数据记录器

GPS模块

功率计

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分