広報部自由研究ーRTC(リアルタイムクロック)を使ってみる(1)

広報部です。こんばんは。

今回はRTC(リアルタイムクロック)を使ってみます。
広報部の本業でもたまに登場するものなのですが、ちゃんと使うのは初めてだったりします。

導入

ちなみにRTCとはWikipediaによると、

リアルタイムクロック(real-time clock、RTCと略記)は、コンピュータが内蔵する時計で、オペレーティングシステムが持つ時刻機能はタイマーにより「時間」を測定しそれを積算するものであるのに対し、コンピュータの電源が切られていてもバッテリバックアップなどにより「時刻」を刻み続けるものであることが特徴である。その機能が実装されている集積回路のことを指す場合もある。

つまり、電源が切れても動き続ける時計、というわけです。
PCや家電など、時計機能を持っている機器の中にはたいてい入っています。PCを自作したor分解したことがある方はマザーボードの中にボタン電池があるのを見たことあると思います。あれがRTC用のバックアップ電源(=PCの電源が切れても時刻を記憶し続けるための電源)です。

RTCモジュールを使う前の下準備

というわけで早速使います。今回は以下のサイトでも紹介されているZS-042というモジュールを使います。これにはDS3231というRTCモジュールが載っています。EEPROMも載っていますがこれは別の機会に。

参照サイトにもありますが、バックアップ用の電源としてCR2032を使う場合にはパターンカットか実装部品を外す改造が必要です。改造をしたくない場合はLIR2032というボタン電池型の充電池が必要です。
今回は入手性が良いCR2032を使いたかったので、パターンカットで対応しました。カッターでパターンをゴリゴリ削ります。

※ちなみにCR2032は100均でも買える普通のボタン電池です

ライブラリ導入&サンプルを動かす

いくつか使えるライブラリがあるようですが、今回は以下のライブラリを使います。

https://github.com/JChristensen/DS3232RTC

一点注意があり、このライブラリは単体では動きません。Timeライブラリが必要ですので合わせてこちらも導入します。

https://github.com/PaulStoffregen/Time

Arduino IDEからDS3232RTCのサンプルスケッチを読み込んで、お手元のArduinoに書き込みます。うまく行けばシリアルコンソールに時間が表示されるような動作はできるはずです。
エラーになってしまう場合はTimeライブラリがうまく入っていない可能性がありますので、その辺を確認してください。

しかし、この段階だと実時間とだいぶ時間がずれていると思います。その辺の解消方法は…

次回に続く

One Reply to “広報部自由研究ーRTC(リアルタイムクロック)を使ってみる(1)”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です