IchigoJamでRTCモジュールを使った時刻表示
IchigoJamで安価なRTCモジュールを使って見ました。
取りあえず、必要最低限の機能を実装しました。
購入はいつものAliexpressを利用しました。
DS3231 Real Time Clock Module 3.3V/5V with battery For Raspberry Pi Free shipping
100円以下で買えます。
利用したのはRaspberry Pi用のRTCモジュールです。
Maxim製のDS3231がのっており、3.3VでI2Cにて利用出来ます。
裏面にボタン電池(もしかしたら二次電池かもしれません)が乗っており、
一度時刻設定すれば、単体で時刻を刻みます。
IchigoJamの電源を切っても、時刻がリセットされることはありません。
ピン割り付け
IchigoJamにはGND、VCC(3.3V)、SCL、SDAの4線を接続します。
プルアップ抵抗はモジュール上に乗っているので不要です。
このIC自体はアラーム機能あるのですが、ピンレイアウト的にその機能が利用出来ません。
ICのINT/SQWをNCにつなげれば、利用出来るかもしれません。
IchigoJamのスリープ状態からの復帰なんかに使いたいですね。
プログラムこんな感じです。IchigoJam 1.2.1で作成しています。
※GitHubにも掲載しています
GitHub:Tamakichi/IchigoJam RTC DS3231利用サンプルソース
1 'RTC DS3231
10 CLS:M=#700:A=#68:POKE M,0:D="// : "
20 'T="16090407085800":GSB @SET
30 @LP:LC 0,0:GSB @PRN:WAIT 30:GOTO @LP
40 @SET
50 N=M+7
60 FOR I=T TO T+13 STEP 2
70 POKE N,(PEEK(I)-48)<<4+PEEK(I+1)-48:N=N-1
80 NEXT
90 R=I2CW(A,M,1,M+1,7)
100 RTN
110 @PRN
120 R=I2CR(A,M,1,M+1,7): ?"20";
130 FORI=0 TO 6
140 IF I<>3 ?HEX$(PEEK(M+7-I),2);STR$(D+I,1);
150 NEXT
160 RTN
20行をコメントアウト(コメントにして実行しないようにする)しています。
時刻設定時はこのコメント(')を取って実行します。
T="16090407085800"
にて設定時刻を指定しています。この数字文字列の意味は左から
西暦下2桁、月2桁、日2桁、曜日2桁(01が日、02が月・・・07が土)、時2桁、分2桁、秒2桁
です。
この指定により 2016/09/04 08:58:00 が設定されます(曜日は表示していません)。
プログラムとしては、
10~30行 が初期化等の設定、
30行 が時刻表示の繰り返しループ(メイン処理)、
40~100行 が時刻設定用のサブルーチン、
110~160行が時刻取得と表示用のサブルーチン
です。
時刻設定部は毎回利用するわけでもないので、別プログラムに分けた方が
よいかもしれません。表示のみなら、20行、40~100行は不要です。
I2Cを使ったデータ通信を含めこのモジュールの利用自体はそう難しくはありません。 ただし、データがBCD形式なので注意が必要ですね。
« DigisparkでUSB経由のシリアル通信が出来ない | トップページ | IchigoJamでRTCモジュールを使った時刻表示 その2 »
「IchigoJam」カテゴリの記事
- Ichigojam Rが届きました(2021.02.05)
- β版 IchigoJam Rを予約注文しました(2021.01.23)
- IchigoJamのファームウェア 1.4.1が正式に公開されました(2019.12.10)
- 「ichigoツール」をGithubにて公開しました(2019.11.09)
- ichigojamのファームウェアを1.4b13にアップデートしました(2019.11.06)
« DigisparkでUSB経由のシリアル通信が出来ない | トップページ | IchigoJamでRTCモジュールを使った時刻表示 その2 »
コメント