DS1302 RTC 模組:在電池供電專案中保持時間
By Official Hobby Components Online Store | Buy Electronic Kits, Components, Boards, Shields, Modules | Published: 2026-11-02
Category: 操作指南
了解如何將 DS1302 即時時鐘模組連接到 Arduino、加裝備用電池並設定時間,讓您的專案即使在斷電時也能維持準確的時間。
快速解答
使用三條訊號線加上電源與接地,將 DS1302 模組接到您的 Arduino,裝上全新的備用電池,然後執行一段簡短的 sketch 來設定一次時間。之後,只要備用電池保持有電,模組就會自行維持時間。
為什麼 DS1302 需要備用電池,以及它的運作方式
DS1302 晶片在主電源移除時,會靠一顆小型備用電池讓時鐘與日曆持續運作。這正是它適用於電池供電或間歇供電專案的原因。您購買的模組通常包含電池座,但電池本身可能包含、也可能不包含,因此請先查看產品頁面,不要直接假設插上就能用。
DS1302 採用簡單的三線序列介面(reset、data 與 clock),而非 I2C,因此會佔用微控制器上的三個數位腳位。這是一項取捨:接線容易且非常便宜,但匯流排效率不如 I2C RTC。它也會以兩位數儲存年份,因此您需要決定程式碼要如何解讀世紀。
DS1302 能為您處理與無法處理的事項
此晶片會追蹤時、分、秒、星期、日期、月份以及兩位數年份。其日曆會自動校正天數不同的月份與閏年,因此您不必自行撰寫該邏輯。它不會校正世紀輪替,也不會調整日光節約時間或時區變更——如果您的專案需要,必須由您的 sketch 來處理。
準確度取決於晶體與電池電壓。DS1302 並非溫度補償模組,因此預期它會隨時間有些微漂移。對於需要更嚴格長期準確度的專案,DS3231 是常見的替代方案,但對許多業餘專案而言,DS1302 已足夠準確,而且成本低得多。
逐步說明:接線、供電並設定 DS1302
- 將模組接到您的 Arduino: 將 VCC 接到 5V(若您的模組指定為 3.3V 則接該電壓)、GND 接到接地,並將三個訊號腳位(RST、DAT、CLK)接到三個數位腳位。常見的錯誤是把 DAT 與 CLK 接反;通電前請再次確認絲印標示。 如果模組沒有回應,請再次確認 RST 確實有被您的程式碼切換——RST 線浮接會讓匯流排看起來像是失效。
- 裝上並檢查備用電池: 如果您的模組有電池座且電池未預先安裝,請插入全新的鈕扣電池。在依賴它之前,先用三用電錶測量電池電壓;電量不足的電池會在主電源移除時讓時間重設。 有些模組出貨時不含電池——在規劃電池供電的組裝前,請先確認盒裝內容。
- 載入函式庫並設定一次時間: 為您的板子使用與 DS1302 相容的函式庫(例如常見的 Arduino RTC 函式庫),並以目前的日期與時間執行其設定時間範例。上傳一次後,將設定呼叫註解掉或移除,以免每次開機都重設時鐘。 讓設定呼叫保持啟用,是專案在每次電源循環後都顯示相同錯誤時間的最常見原因。
- 驗證跨電源循環的計時: 設定時間後,中斷主電源一分鐘,再重新接上並再次讀取時間。它應該已前進大約經過的時間。如果它重設為預設值,首先要檢查的就是備用電池或其電池座。 斷電就重設的時鐘,幾乎總是指向備用電池電路,而不是程式碼。
- 在您的 sketch 中處理兩位數年份與日光節約時間: 決定您的程式碼如何將兩位數年份對應到完整年份(例如將 00–69 視為 2000–2069),並在軟體中加入任何日光節約時間或時區偏移。DS1302 不會為您處理這件事。 在註解中寫下您的世紀規則,讓下一位閱讀此 sketch 的人不必猜測。
產品資訊
- DS1302 即時時鐘模組: DS1302 即時時鐘模組是一款精巧、具備電池備援的時鐘模組,內建 24 小時時鐘,以及會以兩位數儲存年份並校正月份長度與閏年的日曆。這種內建的日曆處理意味著您可以專注於專案邏輯,而不必撰寫日期運算,且精巧的尺寸能整齊地放入小型外殼中。

DS1302 即時時鐘模組
