⌚️

実時間モジュールの使い方

2023/01/05に公開

いろいろ種類がある

種類 時計 アラーム機能 SRAM 温度計
DS3232
DS3231
DS1307

時計として使うならどれでもいい。ライブラリがなんとかしてくれるはず。

もっとあった

こちらによると51種類もあるらしい。

https://www.analog.com/jp/parametricsearch/12905#/

Amazonで入手できる部品

電池つき

https://www.amazon.co.jp/dp/B01H5NAFUY

CR2032 がセットされている。

電池なし

https://www.amazon.co.jp/dp/B081GXLB4H

CR2032 を使うように書いてある。

電池がやばい

充電式にもかかわらず充電できない電池がついているらしい。または推奨して売られているらしい。その結果、電池が膨らんだり故障するかもしれないとのこと。こちらの記事がとても詳しい。

https://burariweb.info/electronic-work/arduino-learning/arduino-rtc-ds3231-i2c-module.html

こちらのコメントでも言及されている。

https://www.amazon.co.jp/gp/customer-reviews/R3OL89ONIOI6CV/ref=cm_cr_dp_d_rvw_ttl?ie=UTF8&ASIN=B01H5NAFUY

接続方法

DS3232 Arduino
SDA[1] SDA or A4
SCL[2] SCL or A5
Vcc 5 V
GND GND

同じ名前のところに指す。

ライブラリ

https://github.com/JChristensen/DS3232RTC

コード

#include <DS3232RTC.h>

DS3232RTC myRTC;

void setup() {
  Serial.begin(9600);
  myRTC.begin();
  setSyncProvider(myRTC.get);
  if (timeStatus() != timeSet) {
    Serial.println("Unable to sync with the RTC");
  } else {
    Serial.println("RTC has set the system time");
  }
}

void loop() {
  char str[80];
  sprintf(str, "%04d/%02d/%02d %02d:%02d:%02d", year(), month(), day(), hour(), minute(), second());
  Serial.println(str);
  delay(1000 / 60);
}

ライブラリ内のサンプルを元にして簡潔にした。シリアルモニタで確認できる。

参考

https://github.com/JChristensen/DS3232RTC/blob/master/examples/TimeRTC/TimeRTC.ino

脚注
  1. Serial Data の略 ↩︎

  2. Serial Clock の略 ↩︎

Discussion