0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DS1307實時時鐘分線板套件的使用

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-27 16:26 ? 次閱讀

概述

DS1307實時時鐘分線板套件的使用

這是一個出色的電池支持實時時鐘(RTC),即使重新編程或斷電,您的微控制器項目也可以跟蹤時間。 DS1307是最流行的RTC,最適合與基于5V的芯片(如Arduino)配合使用。

所有零件,包括PCB,接頭連接器包括電池和電池

可快速組裝和使用

將插頭插入任何面包板,也可以使用電線

我們提供了帶有Arduino的示例代碼和庫我們的文檔頁面上的演練

兩個安裝孔

將保持5年或更長時間

此分線板是一個套件,需要一些只需15分鐘即可完成。

什么是RTC?

實時時鐘基本上就像手表一樣-它依靠電池供電,即使斷電也能為您節(jié)省時間!使用RTC,即使您對微控制器進行重新編程或?qū)⑵渑cUSB電源插頭斷開連接,您也可以跟蹤較長的時間線。

大多數(shù)微控制器(包括Arduino)都具有稱為“ millis(),并且芯片中還內(nèi)置了計時器,可以跟蹤更長的時間段,例如分鐘或幾天。那么,為什么要有單獨的RTC芯片呢?好吧,最大的原因是 millis()僅跟蹤時間,因為Arduino上次供電是- 。這意味著打開電源后,毫秒計時器將設(shè)置為0。Arduino不知道它是“星期二”還是“ 3月8日”,它只能告訴我“自從我上次離開以來已經(jīng)過了14,000毫秒”

確定,如果要在Arduino上設(shè)置時間怎么辦?您必須編程日期和時間,從那時起您就可以算上它了。但是,如果失去電源,則必須重新設(shè)置時間。就像非常便宜的鬧鐘一樣:每當(dāng)他們掉電時,它們都會閃爍 12:00

盡管這種基本的計時功能在某些項目中是可行的,但在某些項目中,例如數(shù)據(jù)記錄器,時鐘等必須保持一致的計時,當(dāng)Arduino電池耗盡或重新編程時,計時不會重置。因此,我們包括一個單獨的RTC! RTC芯片是一種專門的芯片,可以跟蹤時間。它可以計算leap年,并且知道一個月中有多少天,但是它不考慮夏時制(因為它在不同的地方有所不同)

https://en.wikipedia.org/wiki/Real-time_clock#/media/File :上圖顯示的是帶有實時時鐘DS1387的計算機主板。其中有一個鋰電池,這就是為什么它這么大。

我們將使用的RTC是DS1307。它價格低廉,易于焊接,并且可以在非常小的硬幣電池上運行數(shù)年。

備份

只要它有一個可運行的紐扣電池,即使Arduino斷電或被重新編程,RTC也會在很長的時間內(nèi)運行。

使用任何CR1220 3V鋰金屬紐扣電池:

CR1220 12mm直徑-3V鋰幣電池電池

產(chǎn)品編號:380

這些是最高質(zhì)量的電池。容量的電池,與iCufflinks,iNecklace,Datalogging和GPS Shields,GPS HAT等產(chǎn)品隨附的電池相同。每筆訂購一個電池。..

$ 0.95

入庫

添加到購物車

您必須安裝紐扣電池才能使RTC正常工作,如果沒有紐扣電池,則應(yīng)將電池引腳拉低。

零件列表

如果您有組裝版本,請?zhí)^此步驟,即為您完成!

ImageName說明零件信息數(shù)量

IC2實時時鐘芯片DS13071

Q132.768 KHz,12.5 pF手表晶體通用32.768KHz晶體1

R1,R21/4W 5%2.2K電阻

紅色,紅色,紅色,金色通用2

C10.1uF陶瓷電容器(104)通用1

5針公頭(1x5)通用1

BATT12mm 3V鋰紐扣電池(截至2015年10月15日,產(chǎn)品不再配備紐扣電池-盡管我們建議您購買紐扣電池?。〤R12201

BATT‘12mm硬幣電池座Keystone 30011

PCB電路板Adafruit Industries1

組裝

如果您有組裝版本,請?zhí)^此步驟,即完成為您服務(wù)!

將電阻,晶體和電容器的引線短路。

通過檢查零件清單并確認您擁有一切,準備組裝套件!

下一步,加熱烙鐵并清理辦公桌。

將電路板放在虎鉗中,以便您可以輕松地對其進行操作。

通過在電池負極上焊接一個小凸起開始:這樣可以更好地接觸!

放置兩個2.2K電阻和一個陶瓷電容器。它們是對稱的,因此無需擔(dān)心方向。 如果您打算與Raspberry Pi(具有3.3V邏輯并內(nèi)置上拉電阻)一起使用,請?zhí)^2.2K電阻!

然后放置晶體(也是對稱的),電池座(繼續(xù),以便電池可以在側(cè)面滑動)和RTC芯片。必須放置RTC芯片,使末端的凹口/圓點與絲印相匹配??醋髨D,缺口指向下。在焊接芯片之前,請仔細檢查,因為它很難撤消!

為防止電池座掉落,您可能需要從頂部“點焊”它。

然后在板上翻轉(zhuǎn)并焊接所有引腳。

如果您愿意要使用插頭將分線板插入某些東西,請將插頭插入面包板,長邊朝下放置,使短路針穿過焊盤。

將其焊接到位。

插入電池,使+面平UP。 電池可以使用5年或更長時間,因此無需拆卸或更換電池。

您必須安裝紐扣電池才能使RTC正常工作,如果沒有紐扣電池,它將被扼殺并可能掛起Arduino,因此請務(wù)必確保已安裝電池,即使電池沒電也是如此。

接線

只有5個引腳: 5V GND SCL SDA SQW 。

5V 用于為RTC芯片供電以查詢時間。如果沒有5V信號,則芯片會通過紐扣電池進入休眠狀態(tài)。

將 GND 連接到公共電源/數(shù)據(jù)地

SCL 引腳連接到Arduino上的I2C時鐘 SCL 引腳。在基于UNO和’328的Arduino上,這也稱為 A5 ,在Mega上也稱為 digital 21 ,在Leonardo/Micro上,也稱為數(shù)字3

將 SDA 引腳連接到Arduino上的I2C數(shù)據(jù) SDA 引腳。在基于UNO和‘328的Arduino上,這也稱為 A4 ;在Mega上,其也稱為 digital 20 ;在Leonardo/Micro上,這也稱為數(shù)字2

SQW 是RTC可選的方波輸出(如果已配置的話)。大多數(shù)人不需要或使用此圖釘

用于Arduino UNO的有趣插件

如果將模擬引腳 A3 設(shè)置為OUTPUT和HIGH,將 A2 設(shè)置為OUTPUT和LOW,則可以直接從引腳為RTC供電!

將Arduino UNO A4連接到SDA。將Arduino模擬引腳A5連接到SCL。

這僅適用于UNO和其他基于ATmega328的Arduino!

Arduino庫

與RTC對話

RTC是i2c設(shè)備,這意味著它使用2條線進行通信。這兩條線用于設(shè)置時間并進行檢索。在Arduino UNO上,這些引腳還連接到模擬4 和 5 引腳。這有點煩人,因為我們當(dāng)然希望最多有6個模擬輸入來讀取數(shù)據(jù),而現(xiàn)在我們已經(jīng)丟失了2個。

對于RTC庫,我們將使用JeeLab卓越的分叉器可以在GitHub上找到RTC庫 。您可以通過訪問github存儲庫并手動下載來實現(xiàn)此目的,或者只需單擊此按鈕即可下載zip

安裝Adafruit_RTCLib庫

對于RTC庫,我們將要使用JeeLab出色的RTC庫的分支。

要開始對RTC進行讀寫,您需要安裝Adafruit_RTClib庫(在github存儲庫中的代碼)??梢詮腁rduino庫管理器中獲得它,因此我們建議使用它。

從IDE中打開庫管理器。..

,然后輸入 RTClib 來查找?guī)臁?/p>

查找 Adafruit RTClib (可能還有其他?。?/p>

單擊安裝

我們在Arduino上也有很棒的教程在以下位置安裝庫:

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

完成后,重新啟動IDE

了解代碼

首次RTC測試我們將演示的第一件事是一個測試草圖,它將每秒從RTC讀取時間。我們還將顯示如果您卸下電池并更換電池會發(fā)生什么,因為這會導(dǎo)致RTC停止。因此,要開始使用,請在未給Arduino供電或未將其插入USB的情況下從電池座中取出電池。等待3秒鐘,然后更換電池。這將重置RTC芯片?,F(xiàn)在加載下面的草圖(也可以在示例→RTClib→ds1307 中找到),并在數(shù)據(jù)記錄器防護罩打開的情況下將其上傳到Arduino?。▌e忘了安裝DS1307庫)在運行下面的代碼之前)

現(xiàn)在打開串行控制臺,并確保將波特率正確設(shè)置為 57600波特,您應(yīng)該看到以下內(nèi)容:

只要RTC芯片失去所有電源(包括備用電池) ),它將以0:0:0的形式報告時間,并且不會計數(shù)秒(停止)。無論何時設(shè)置時間,它都會開始計時。因此,基本上,這樣做的結(jié)果是,一旦設(shè)置了時間,就永遠不要卸下電池。您不需要,電池座也非常貼合,因此除非面板被壓碎,否則電池不會“掉落”

設(shè)置時間加載相同的草圖后,取消注釋以 RTC開始的行。調(diào)整 像這樣:

下載:文件

復(fù)制代碼

if (! rtc.initialized()) {

Serial.println(“RTC is NOT running!”);

// following line sets the RTC to the date & time this sketch was compiled

rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); if (! rtc.initialized()) {

Serial.println(“RTC is NOT running!”);

// following line sets the RTC to the date & time this sketch was compiled

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

這行很可愛,它的作用是根據(jù)您使用的計算機獲取日期和時間(當(dāng)您編譯代碼)并將其用于對RTC進行編程。如果您的計算機時間設(shè)置不正確,則應(yīng)首先解決該問題。然后,您必須按上傳按鈕進行編譯,然后立即上傳。如果您先編譯然后再上傳,則時鐘將在該時間段內(nèi)關(guān)閉。

然后打開“串行”監(jiān)視器窗口以顯示時間已設(shè)置。

從現(xiàn)在開始,您將不再再次設(shè)置時間:電池將使用5年或以上。

讀取時間 現(xiàn)在RTC快活了,我們想查詢一下時間。讓我們再次查看草圖以了解其操作方法。

下載:文件

復(fù)制代碼

void loop () {

DateTime now = rtc.now();

Serial.print(now.year(), DEC);

Serial.print(’/‘);

Serial.print(now.month(), DEC);

Serial.print(’/‘);

Serial.print(now.day(), DEC);

Serial.print(“ (”);

Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);

Serial.print(“) ”);

Serial.print(now.hour(), DEC);

Serial.print(’:‘);

Serial.print(now.minute(), DEC);

Serial.print(’:‘);

Serial.print(now.second(), DEC);

Serial.println(); void loop () {

DateTime now = rtc.now();

Serial.print(now.year(), DEC);

Serial.print(’/‘);

Serial.print(now.month(), DEC);

Serial.print(’/‘);

Serial.print(now.day(), DEC);

Serial.print(“ (”);

Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);

Serial.print(“) ”);

Serial.print(now.hour(), DEC);

Serial.print(’:‘);

Serial.print(now.minute(), DEC);

Serial.print(’:‘);

Serial.print(now.second(), DEC);

Serial.println();

使用RTClib獲得時間的方法幾乎只有一種,即調(diào)用 now(),該函數(shù)將返回一個DateTime對象,該對象描述您在調(diào)用 now()時的年,月,日,時,分和秒。

有些RTC庫可以讓您調(diào)用諸如 RTC.year()和 RTC.hour()之類的東西來獲取當(dāng)前的年份和小時。但是,存在一個問題,如果您碰巧在下一分鐘滾動之前在 3:14:59 詢問分鐘,然后在分鐘滾動之后的第二分鐘問(所以在 3:15:00 ),您會看到時間為 3:14:00 ,該時間需要一分鐘。如果您以其他方式進行操作,則可能會得到 3:15:59 -在另一方向上間隔一分鐘。

因為這種情況發(fā)生的可能性不大-特別是如果您經(jīng)常查詢時間-我們會一次從RTC中獲取時間的“快照”,然后將其拆分為 day()或 second() 如上所示?;ㄙM更多的精力,但是我們認為避免錯誤是值得的!

我們還可以通過調(diào)用 unixtime 來從DateTime對象中獲取“時間戳”,該計數(shù)會計數(shù)自1970年1月1日午夜以來的秒數(shù)(不計算leap秒)

下載:文件

復(fù)制代碼

Serial.print(“ since 1970 = ”);

Serial.print(now.unixtime());

Serial.print(“s = ”);

Serial.print(now.unixtime() / 86400L);

Serial.println(“d”); Serial.print(“ since 1970 = ”);

Serial.print(now.unixtime());

Serial.print(“s = ”);

Serial.print(now.unixtime() / 86400L);

Serial.println(“d”);

由于一天中有60 * 60 * 24 = 86400秒,因此我們可以很容易地算出好。當(dāng)您想要跟蹤自上次查詢以來已經(jīng)過去了多少時間,使一些數(shù)學(xué)變得容易得多時(例如檢查是否在5分鐘后,只需查看 unixtime()),這可能會很有用。 增加了300,您不必擔(dān)心小時變化。

下載

數(shù)據(jù)表和文件您可以在GitHub上找到strong》

EagleCAD PCB文件

Adafruit Fritzing庫中可用的Fritzing對象

DS1307產(chǎn)品頁面

示意圖

構(gòu)造打印

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1714

    瀏覽量

    131274
  • DS1307
    +關(guān)注

    關(guān)注

    1

    文章

    34

    瀏覽量

    14103
收藏 人收藏

    評論

    相關(guān)推薦

    TPS65950實時時鐘時序補償分析

    電子發(fā)燒友網(wǎng)站提供《TPS65950實時時鐘時序補償分析.pdf》資料免費下載
    發(fā)表于 10-29 10:01 ?0次下載
    TPS65950<b class='flag-5'>實時時鐘</b>時序補償分析

    使用實時時鐘

    電子發(fā)燒友網(wǎng)站提供《使用實時時鐘庫.pdf》資料免費下載
    發(fā)表于 10-22 10:09 ?0次下載
    使用<b class='flag-5'>實時時鐘</b>庫

    bq32000實時時鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《bq32000實時時鐘(RTC)數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-23 11:23 ?0次下載
    bq32000<b class='flag-5'>實時時鐘</b>(RTC)數(shù)據(jù)表

    BQ32002實時時鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《BQ32002實時時鐘(RTC)數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-23 11:23 ?0次下載
    BQ32002<b class='flag-5'>實時時鐘</b>(RTC)數(shù)據(jù)表

    bq3285實時時鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《bq3285實時時鐘(RTC)數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-23 11:21 ?0次下載
    bq3285<b class='flag-5'>實時時鐘</b>(RTC)數(shù)據(jù)表

    TCXO RTC實時時鐘模塊的特性

    高精度實時時鐘模塊內(nèi)建TCXO數(shù)字式實時時鐘模塊的特征【序文】時間是我們?nèi)粘I钪械幕靖拍?。火車運行管理、進出場管理等各種處理系統(tǒng)和應(yīng)用程序按照時間信息工作。在金融、股市領(lǐng)域中,時間操縱著巨大利益
    的頭像 發(fā)表于 08-14 11:44 ?270次閱讀
    TCXO RTC<b class='flag-5'>實時時鐘</b>模塊的特性

    RTC實時時鐘的基本概念和工作原理

    在現(xiàn)代電子設(shè)備中,精確的時間管理和控制是至關(guān)重要的。為了實現(xiàn)這一功能,實時時鐘(RTC, Real-Time Clock)模塊被廣泛應(yīng)用于各種設(shè)備和系統(tǒng)中。RTC模塊作為一個獨立的定時器,能夠提供
    的頭像 發(fā)表于 05-27 15:43 ?3249次閱讀

    RX-4571LC、NB、SA實時時鐘模塊

    RX-4571LC實時時鐘模塊是EPSON推出的一求款額定頻率32.768KHz,接口為SPI(3-wire),月偏差為±60 s的實時時鐘模塊,12腳貼片,具有小尺寸,高穩(wěn)定性。該款實時時鐘模塊
    發(fā)表于 01-31 11:46 ?0次下載

    Ds1307 RTC連接到CR2032電池,就會卡住的原因?

    每當(dāng)我從電源向 ds1307 RTC 施加電壓時,它都能正常工作,但一旦我將其連接到 CR2032 電池,它就會卡住,時間不起作用。我檢查了電池的電壓,它是3v,但在電阻后,ds1307 IC上提供的電壓約為1.5v。因此,DS1307
    發(fā)表于 01-22 08:02

    基于51單片機的實時時鐘設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機的實時時鐘設(shè)計.rar》資料免費下載
    發(fā)表于 01-12 10:43 ?12次下載

    基于51單片機的實時時鐘+溫度應(yīng)用設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機的實時時鐘+溫度應(yīng)用設(shè)計.rar》資料免費下載
    發(fā)表于 01-12 10:20 ?0次下載

    基于51單片機的實時時鐘設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機的實時時鐘設(shè)計.rar》資料免費下載
    發(fā)表于 01-02 10:15 ?43次下載

    基于51單片機的實時時鐘+溫度應(yīng)用設(shè)計

    基于51單片機的實時時鐘+溫度應(yīng)用設(shè)計(仿真)
    發(fā)表于 01-02 09:55 ?6次下載

    帶電池的實時時鐘1338 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶電池的實時時鐘1338 數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 12-21 10:47 ?0次下載
    帶電池的<b class='flag-5'>實時時鐘</b>1338 數(shù)據(jù)表

    如何在樹莓派Pico上編程使用DS1302時鐘模塊?

    常用的計時時鐘芯片有 DS1302、DS1307DS3231,各型號還有衍生型號。
    的頭像 發(fā)表于 11-28 09:16 ?1604次閱讀