PICで気圧、温度、湿度計 by 24FJ64GA002 その4
LCDに日時を表示


PIC24Fの内蔵RTCCで、時刻をNOKIA グラフィックLCDに表示てみる事にしました。前回のハード回路図を下記の部分まで実装しました。(Oct. the 16th 2010)


この回路のPIC24FJ64GA002で、今後バッテリー駆動を行う事も考えると、PIC自身での消費電流を押さえる為に、Fosc(システムクロック)には内蔵のFRC発振器(8MHz)をダイレクトに使う事にします。この場合には、4MIPSの処理能力となります。ディレイ等のCLOCK定数(MIPS値)は「4」として下さい。

これは、PIC16F系やPIC18F系を同一のFosc(システムクロック)で動作させた場合の2倍の処理能力があります。さすが、PIC24FJですが、その分消費電流もPIC16FやPIC18Fの2倍になってしまいます。

もっと動作クロックを下げれば、消費電流を押さえる事が出来ますが、これ以上クロックを下げるには、外付けの発振子が必要となってしまい、I/Oが2つ減ってしまいます。今回はI/Oを目一杯使用する予定なので、この方法は残念ながら使えません。

ここで私が心配しているのは、
●RTCC用のSOSC(第2発振器)が、システムクロックの8MHzに関係なく、32.768kHzで動作してくれるのかという事です。

何故かと云うと、皆、フルスピードの32MHzでPICを動作させてRTCCを使っている例しか無いのです・・

でも、これは何も心配有りませんでした。

SOSCは他の発信器とは完全に独立して動作いたしました。(当たり前なのですが・・)

もう1つ厄介だなぁと思っていたのは、
●RTCCから取り出す事の出来る情報は、16ビットで、上位と、下位に別々のデータがあり、しかも、全てBCDであるという事です。

取り出した情報がバイナリーならば、そのまま整数として扱う事ができるのですが、BCDのままでは駄目です。LCDへの表示用の関数が整数データ用なのです。

これも、結果的にはLCD表示用の関数を全く変更しないで、BCDー>バイナリー変換も使わずに、簡単に処理する事が出来ました。

BCDの1桁分ならば、バイナリーとBCDは同じです。だからLCDへの表示をする時も、1桁ずつに分けて表示させれば良いのでした。時間は全て2桁なので、たいした労力でもありません。

最大の難関は、
●今までの文字配列では、時刻を表示させる用途としては、比較的文字が大きいので表示領域がどうしても一杯になってしまって、全体の表示が見難くなってしまう事でした。

これは、今まで使っていた幅5ドットの数字文字とは別に、幅3ドットの文字を定義して使う事で解消できました。

そして完成したのが、下記写真です。

ただし、現状ではまだ気圧センサー、湿度センサー等のセンサー類を実装していませんので、写真に表示されている気象観測データは、単純な強制表示(イミテーション)です。

大体1秒毎になる様にディレイを入れて、各観測データを+1して表示し、時刻を読み込んで一緒に表示させてみました。

うまく動作しています。

ここまでのRTCCに関する基礎実験を元にして、さらに各センサーを実装して動かしてみようと思います。
(Oct. the 16th 2010)


注意事項
General disclaimer
トッ プページへ

なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで