Ameba Arduino: [RTL8195] [RTL8710] RTC – 使用 DS1307/DS3231 RTC 當做時間來源

材料準備

  • Ameba x 1
  • DS1307/DS3231 RTC x 1

範例說明

這個範例裡使用DS1307/DS3231 RTC模組當作時間的來源。DS1307與DS3231都是RTC模組,主要差異是DS3231的精準度較高。我們需要的library有
Time:
https://github.com/Ameba8195/Arduino/raw/master/libraries/Time-1.0.0.zip
DS1307RTC:
https://github.com/Ameba8195/Arduino/raw/master/libraries/DS1307RTC-1.0.0.zip
安裝library的方式請參考Arduino官方網站的教學文章將zip檔的library加入Ameba: https://www.arduino.cc/en/Guide/Libraries#toc4
關於DS1307/DS3231的使用說明請參考DS1307/DS3231的範例。接線方面,如果使用TinyRTC,接線如下:
1

如果是DS3231,底下是常見的DS3231模組的接線:
2

RTL8710的接線圖:
2

我們打開範例 “File” -> “Examples” -> “AmebaTime” -> “TimeRTC”, 編譯並上傳至Ameba之後按下Reset按鈕,可以在SerialMonitor看到底下的結果
3

程式碼說明

這個範例改成用RTC為時間來源:

setSyncProvider(RTC.get)

RTC.get()會將目前的時間以unix-like格式回傳,並設定Time library需要的時間內容