iizukak の雑記

忘れる前に書いとこう

SainSmart の電池付き RTC モジュールを使ってみる

Arduino には RTC が載っていないので、Arduino の電源を切っても時刻を保持したいといった場合、外部の RTC 機構を使うことになります。

今回使ってみたのは、秋月で売っていた SainSmart の "SainSmart I2C RTC DS1307 AT24C32 Real Time Clock Module Board for Arduino AVR ARM PIC" という RTC モジュール。名前長過ぎというか、思い付くままに単語を製品名に入れてしまった感が否めない…。これを選んだのは特にこだわりがあったわけではなく、秋月電子で別のパーツと一緒に注文したときに在庫があったからです。LIR2032 が付属しているので、電池を別途買う必要がないのは良いですね。

この RTC モジュールに乗っている DS1307 のライブラリに次のものがあり、今回使いました。

両方、Github から zip で落として、 Arduino IDE からライブラリに登録しておきます。

Arduino との接続ピンに関しては、

Arduino RTC Module
A4 Sda
A5 Scl
5V Vcc
GND Gnd

これだけ接続すれば、時刻の読み書きはできました。

時刻設定は、ライブラリの examples ディレクトリの中にある SetTime.ino というファイルを Arduino IDE から書き込むと、PC の時刻と RTC の時刻が同期されます。

時刻の読み取りも、サンプルファイル そのままで実行できました。実行すると、

Ok,ate (D/M/Y) = 3/9/2016
DS1307RTC Read Test
-------------------
Ok, Time = 22:14:26, Date (D/M/Y) = 3/9/2016
Ok, Time = 22:14:27, Date (D/M/Y) = 3/9/2016
Ok, Time = 22:14:29, Date (D/M/Y) = 3/9/2016
...

のような表示がでます。