實時鍾通(tōng)常也被稱為(wèi)實時時鍾,它能(néng)夠向電(diàn)子電(diàn)路(lù)提供日期和時間信息,包括年(nián)、月(yuè)、日、時、分、秒(miǎo),被廣泛應用在需要進行計時的場合中。許多(duō)實時鍾電(diàn)路(lù)還(hái)提供電(diàn)池供電(diàn)的方式,這樣在發生(shēng)掉電(diàn)時仍能(néng)準确計時。通(tōng)常說來,功能(néng)稍多(duō)一(yī)點的實時鍾電(diàn)路(lù)還(hái)會(huì)提供包括警報(bào)、看(kàn)門(mén)狗,以及支持高(gāo)精度要求的校準寄存器(qì)等附加功能(néng)。
DS1307是一(yī)款實時種芯片,采用I2C協議與單片機(jī)通(tōng)訊,而Arduino上(shàng)正好有這一(yī)接口,因此連接起來就(jiù)非常方便了。DS1307中有一(yī)個(gè)可編程波形輸出口,它可以用來驅動LED小(xiǎo)燈,或者作為(wèi)中斷來觸發某些事(shì)件(jiàn),不過用它去帶一(yī)些大功率的東西(xī)的時候要注意。一(yī)般設計的這一(yī)款實時鍾模塊,将Ds1307的I2C接口和可編程波形輸出接口SQW都連接出來了,不過一(yī)般情況下(xià)隻會(huì)用到(dào)I2C接口來實現基本的時鍾設置/讀(dú)取功能(néng)。需要注意的是,該模塊必須先安裝上(shàng)電(diàn)池才可以正常工(gōng)作。電(diàn)池使用的是紐扣電(diàn)池(型号CR1220),正極朝上(shàng):
在電(diàn)路(lù)連接上(shàng)可以使用Arduino專用傳感器(qì)擴展闆V4,不過要将相(xiàng)應的跳線設置到(dào)IIC的位置上(shàng):
剩下(xià)的工(gōng)作就(jiù)是用4芯的I2C/COM連接線将傳感器(qì)擴展闆上(shàng)的專用接口,與實時鍾模塊上(shàng)的IIC(I2C其實就(jiù)是IIC的縮寫)端口連接起來了:
硬件(jiàn)連接的工(gōng)作完成之後,如何在Arduino裡(lǐ)對該模塊進行編程呢(ne)?上(shàng)網搜索了一(yī)下(xià),發現在Arduino上(shàng)使用DS1307做為(wèi)時鍾芯片的玩家還(hái)真不少,而且還(hái)封裝好了相(xiàng)應的Arduino庫,實驗時一(yī)般使用的是Google Code上(shàng)的這個(gè)DS1307庫,你也可以在網上(shàng)下(xià)載其它的版本。将下(xià)載好的壓縮文件(jiàn)解壓縮到(dào)Arduino 0018的libraries目錄下(xià)後,重新啓動Arduino并用它自(zì)帶的測試程序進行測試:
程序讀(dú)起來應該不算(suàn)困難,基本上(shàng)就(jiù)是使用RTC.set來對時鍾進行設置,然後就(jiù)可以通(tōng)過RTC.get來讀(dú)取相(xiàng)應的時間信息了,至于時鍾怎麽維護,那就(jiù)是 DS1307 的工(gōng)作了:)
文章轉自(zì)網絡,如有版權問題,請聯系删除。