スレーブCPUボードの温度センサ「TMP102」を読み取るプログラムは、前回紹介しましたので、今回は読み取ったバイナリ・データを、氷点下の場合は-符号を付加して10進数に変換するプログラムを紹介します。
TMP102の温度データは、12ビット・モード・データを使用し2バイトの2進数で表されます。上位バイトの最上位ビットは符号を示し残り7ビットで整数部分を表し、下位バイトの上位4ビットで少数部分を
表しています。12ビットモードの場合0.0625℃/ビットです。
氷点下の場合2の補数でで表されるので、2の補数の作成法は、
(1) 各ビットを反転させる(1の補数)。
(2) 上記(1)の結果に1を加える。
従って、通常の2進数に戻すには上記の逆を実施すればよいわけです。また、本システムでは整数部と小数部を分離し、小数部は0.0625倍せずif文で数値化して、少数第1位のみ表示します。
下記は、スレーブCPUボードを使用しTMP102(2)を冷蔵庫の冷凍室に入れ、数値変換処理を-数値の表記確認のために実施しているところです。
冷凍庫の中です。
温湿度計の温度計部の精度は±1℃(0℃~+30℃)、±2℃(左記以外)で、TMP102の精度は
±0.5℃(-25℃~+85℃)です。温湿度計はエンペックス気象計(株)のシュクレ・ミディを使用して
います。
印字結果は、下記のようになります。
TMP=F120
~TMP=0EE0
-14.9
テスト・プログラムは下記で、アドレス0x49のTMP102を1セット使用しています。TMP102を読み出すプログラムは、前回紹介済みのプグラムと同一です。後半'8)disp tempでターミナル・ソフトへの温度表示処理を行っています。 'check minusで氷点下の判定、 'change minusvalueで小数部分の変換処理を実施しています。この部分のフローチャートは下記のようになります。
DISP_1TMP102_0x49-5.bas
次回は、読み出したTMP102のバイナリ・データを、マスタCPUボードに送信するプログラムを紹介します。


コメントする