用DS1302計時:Arduino上的實時時鐘
在Arduino和微控制器的迷人世界中,保持時間是關(guān)鍵。
在Arduino和微控制器的迷人世界中,保持時間是關(guān)鍵。你可能需要建一個數(shù)字時鐘,計時器,或者更復(fù)雜的東西,比如自動植物澆水系統(tǒng)。這就是DS1302模塊發(fā)揮作用的地方。這是一個方便的小設(shè)備,可以幫助你在Arduino項目中準(zhǔn)確地保持時間。在本文中,我們將仔細(xì)研究DS1302模塊,了解它的工作原理,并探索它的應(yīng)用程序。
DS1302模塊
DS1302是一個實時時鐘(RTC)模塊。這是什么意思?它就像你的Arduino的一個微型數(shù)字手表。它很好地保持時間,不需要繞組或更換電池,因為它運行時耗電量很少。該模塊通過簡單的界面與Arduino連接,使其超級友好。
DS1302使用32.768 kHz晶體振蕩器非常精確地跟蹤時間。它甚至還有備用電池,所以如果你的Arduino沒電了,它不會忘記時間。這使得它非常適合精確度至關(guān)重要的情況。
連接模式
將DS1302模塊與Arduino連接起來非常簡單。你需要連接幾根電線,比如數(shù)據(jù)、時鐘和復(fù)位引腳,到Arduino上的正確位置。電源和備用電池對于不間斷計時是必不可少的。
好消息是有很多庫和示例代碼可以簡化這個過程。所以,即使你不是專家,你也可以讓它運行起來,沒有太多的麻煩。
安裝DS1302的庫
為了與DS1302傳感器交互,我們將使用現(xiàn)有的庫。這個庫提供了一個接口,方便了與模塊的通信,節(jié)省了大量的時間,并提供了一個可靠的、經(jīng)過廣泛測試的代碼庫。它可以從我們的官方存儲庫下載。
要導(dǎo)入庫,打開Arduino IDE,轉(zhuǎn)到Sketch > Include library > Add.ZIP library并選擇從GitHub存儲庫下載的庫文件。要導(dǎo)入庫,打開Arduino IDE,轉(zhuǎn)到Sketch > Include library > Add.ZIP library并選擇從GitHub存儲庫下載的庫文件。
然后你可以簡單地使用include語句:
它將包含帶有與模塊交互的預(yù)定義函數(shù)的庫。
Arduino代碼
讓我們從建立連接引腳開始。之后,我們將配置當(dāng)前時間作為模塊的初始引用。這個初始設(shè)置是一次性的作業(yè),因為模塊巧妙地將此值保留在其內(nèi)存中,從而消除了每次上傳新代碼時重置的需要。
在主循環(huán)中,我們的任務(wù)很簡單——我們只需打印模塊的值,確保日期和時間單元被清楚地分開。
自動時間檢測
為了簡化設(shè)置并使其易于使用,我們創(chuàng)建了一個自動化版本,用于配置當(dāng)前時間。此版本使用當(dāng)前編譯日期作為模塊時鐘的初始時間。
庫不支持當(dāng)前時間的自動設(shè)置。因此,我們創(chuàng)建了一個擴展文件,可以在我們的官方存儲庫中獲得,它可以自主地檢測和設(shè)置模塊上的當(dāng)前時間。
測試
為了驗證我們的模塊是否正常工作,我們使用串行監(jiān)視器。
您的串行監(jiān)視器應(yīng)該顯示的值與上圖中可見的值非常相似。
結(jié)論
在一個時間就是一切的世界里,DS1302模塊和你的Arduino可以是一個動態(tài)的二人組。它使你的項目像時鐘一樣運行,最好的部分是,它的設(shè)置并不過于復(fù)雜。它很容易集成,并為各種面向時間的應(yīng)用程序拓寬了視野。所以,不要再等了!擁抱它提供的精度和效率,讓您的Arduino項目無縫地與周圍世界的節(jié)奏保持一致。
本文編譯自hackster.io