運用 DS3231 及 I2C 介面 玩即時時鐘RTC 於 Arduino Uno

前言:本想找一個簡單的 DS3231 的Arduino範例,怎知搜尋出來(2011年)後其範例檔案錯誤多多,導致花了一些時間去整理,並留下此篇記錄...

動機:可否在 Arduino Uno 開發板上做一個 Real-Time Clock(RTC)?!

準備環境
1.Arduino Uno(需連接USB數據線)
2.DS3231 AT24C32 高精度時鐘RTC IIC模組
3.Windows筆電
4.Arduino IDE(需先安裝)

實作步驟
1.接線方式為:Arduino Uno SCL→A5、SDA→A4、Vcc→5V、GND→GND。如下圖

2.先至網站 http://hacks.ayars.org/2011/04/ds3231-real-time-clock.html 下載 DS3231.zip,並解壓縮至 C:\Users\XXX\Documents\Arduino\libraries 目錄內 (XXX=電腦登入帳號)

3.由於 上述2. 提供的範例錯誤頗多或是年代久遠,於是,到 參攷 2. 的網站去更新程式及範例並複製至 上述2. 的目錄中

4.搜尋其中的範例並測試後,改寫了其中的範例 DS3231_test.ino (利用高精度I2C即時時鐘RTC及溫補晶振TCXO來顯示日期時間溫度),如下(請自行修改程式 第#23~29行,將目前日期/時間代入)


執行畫面,如下圖


參攷
1.DS3231 Real-Time Clock, http://hacks.ayars.org/2011/04/ds3231-real-time-clock.html
2.NorthernWidget/DS3231, https://github.com/NorthernWidget/DS3231

留言