RTCから日時を取得する
micro:bitで、リアルタイムクロック(RTC)モジュールから日時を取得して、LED画面に表示する方法を解説します。ここで紹介するリアルタイムクロックモジュールは、RV-8803-C7(マイクロクリスタル社)です。
3-11-1.リアルタイムクロック(RTC)モジュールとは
リアルタイムクロック(RTC)モジュールは、それ単体で時刻を刻むことができるICで、外部からの問い合わせにより、日時や曜日などの情報を出力します。出力できる情報や機能の違いによりさまざまな種類のものがあります。本記事で使用するリアルタイムクロックモジュールは、RV-8803-C7(マイクロクリスタル社)です。
RV-8803-C7(マイクロクリスタル社)
RV-8803-C7は、マイクロクリスタル社の高精度・低消費電力なリアルタイムクロックモジュールで、うるう年を自動補正するカレンダーと時刻情報を取得することができます。また、アラームやタイマー機能なども利用できます。動作電圧は1.5V~5.5Vで、I2C(~400kHz)で外部と接続します。
RV-8803-C7は、サイズが3.2mm×1.5mm×0.8mm(SMDパッケージ)ととても小さく、そのままではmicro:bitと接続できないため、本記事では、RV-8803-C7を搭載した評価ボードを使います。この評価ボードは、多摩デバイスが提供するもので、基板上には、あらかじめ動作に必要なプルアップ抵抗やバックアップ電池(CR1025リチウム電池)、電源切り替え用のダイオードなどを備えています。また、出荷時には時刻情報が書き込まれています。詳しい情報は高精度リアルタイムクロック評価基板 RV8803-Raspi基板で確認することができます。
3-11-2.用意するもの
表3-11-2-1は、この電子工作に必要な部品などの仕様・定格です。
品名 | 数量 | 仕様・定格など |
---|---|---|
micro:bit本体 | 1 | |
プロトタイピングセット | 1 | KITRONIK-5609 |
リアルタイムクロックモジュール | 1 | RV-8803-C7評価ボード |
ジャンプワイヤー(オス-メス) | 4 | KITRONIK-5609に付属のもの |
ピンヘッダー(2ピン) | 2 | KITRONIK-5609の端子19、20にはんだ付けする |
プロトタイピングセットとは、ブレッドボードとmicro:bitのエッジコネクターをピンヘッダーに変換する基板が一つになった製品で、micro:bitを使った電子工作がハンダ付けなしで簡単に始められます。
プロトタイピングセットには、必要なジャンプワイヤーが付いてきます。
3-11-3.作る前に
micro:bitに何かプログラムが入っていると、想定外の動きをするかもしれません。「何もしない」プログラムをダウンロードして、micro:bitに送っておきましょう。
3-11-4.接続方法
micro:bitに、USBケーブルが刺さっている場合は抜いて、電源がオフになるようにしてください。また、RV-8803-C7は静電気で故障する恐れがあります。取り扱いには十分注意してください。
RV-8803-C7評価ボードの取り付け
RV-8803-C7評価ボードのバックアップ電池が取り付けられた面を上にして、ブレッドボードに固定します。向きは、図3-11-4-1を参考にしてください。
ピンソケットのピンアサインは、左からGND・NC・SCL・SDA・3.3Vとなります。異なる色のジャンプワイヤー(4本)を使って、ピンソケットへ接続します。本記事では、GND(黒)・SCL(青)・SDA(白)・3.3V(赤)としました。NCは未接続です。
ジャンプワイヤーの反対側を、それぞれ対応するピンヘッダーへ差し込みます。3V(赤)・0V(黒)・19(青)・20(白)となります。19と20には、ピンヘッダーがないので、あらかじめ用意したピンヘッダーをはんだ付けしておきます。
もう一度、配線に間違いがないか確認してください。この評価ボードには、電源の逆接続保護回路はありません。誤って逆に接続すると、RV-8803-C7が壊れます。しっかり確認してください。
3-11-5.プログラミング(ブロック)
リアルタイムクロックモジュールから日時を取得するサンプルプログラムです。
最初だけ実行されるプログラム
変換用の重みを定義します。
ボタンAが押されたときに実行されるプログラム
年月日を取得して表示します。
ボタンBが押されたときに実行されるプログラム
時分秒を取得して表示します。
関数(年・月・日の取得)
関数(時・分・秒の取得)
関数(レジスタ値の読み取り)
関数(レジスタ値の変換)
3-11-6.プログラミング(Javascript)
Javascript(テキスト)のサンプルプログラムです。
3-11-7.動かしてみよう
プログラムが完成したら動かしてみましょう。ボタンAを押すと年月日、ボタンBを押すと時分秒が、micro:bitのLED画面に表示されます。
3-11-8.解説
micro:bitとRV-8803-C7は、I2Cインターフェースによって接続され、RV-8803-C7のデバイスアドレスは0x32(50)です。下表は、RV-8803-C7のレジスタ構成(一部)です。レジスタのアドレスを指定することで、その値を取得することができます。
高精度温度補償リアルタイムクロックモジュールバックアップ電池付き評価基板 (Page.7)
例えば、年(Year)を取得する場合は、アドレス06h(6)を指定します。戻り値は8ビットで、ビットごとに重みが決まっています。年(Year)の場合、Bit0~Bit8が、それぞれ1・2・4・8・10・20・40・80までの値に対応し、ビットが立っている部分(1の部分)の重みを加算することで、値が求められます。合計は0~99となり、2000年~2099年を表します。
micro:bit関連のおすすめ品
micro:bitのエッジコネクターをピンヘッダーに変換するエッジコネクターピッチ変換基板と、ブレッドボードが一つになった製品です。付属のジャンパーワイヤーを使用することで、手軽に回路の実験ができます。