Arduino本体の時計を使う
ネット検索をすると外部のRTCを使う記事はたくさん見つかるのですが、Arduino本体の時計を使う記事は案外見つけにくいと感じました。
そこで、ここにメモをしておきます。
なお、事前にライブラリマネージャでライブラリTime(by Michael Margolis)をインストールしておく必要があります。
スケッチ例
time.ino
#include <TimeLib.h>
void setup() {
setTime(0, 0, 0, 1, 1, 2021); //set time
Serial.begin(9600);
}
void loop() {
Serial.print(year());
Serial.print("-");
Serial.print(month());
Serial.print("-");
Serial.print(day()); //同様にhour(), minute(), second()が使える。
}
##コメント
周期的に装置を動作させるスケッチを作る時、delay関数を使って記述してもよいのですが、時間のかかる処理が間に入るとその分タイミングがずれてしまいます。millis()を使うことも考えられますが、50日程度でオーバーフローしてしまうとのこと。そんな時、Arduino本体の時計を使うとよいと思います。RTCを使ってもよいのですが、RTCがないときは便利でしょう。