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需要的时间内容