センサのためのマイコンを選ぶ ──センサ利用のノウハウをファームウェアとして提供
2) 温度換算
温度換算は,あらかじめ準備してあるデータ・テーブルを用いて,得られたカウンタ値から実際の温度を算出します(図5).データ・テーブルについては,対数関数的なCR発振の特性と,非線形のサーミスタの特性を考慮すると,温度レンジをいくつかに区切って換算するほうが好ましいことがわかります.本事例では-30℃から+60℃までを10℃ずつに区切り,10個のポイントをデータ・テーブルとして設定しています.
まず,得られたカウンタ値が,10℃刻みのどの温度レンジに該当するかを調べ,採用するデータ,つまり初期カウンタ値(境界値)と傾き値(カウンタ値と温度の間の係数)を決定します.次に,計測したカウンタ値と境界カウンタ値の差に傾き値を乗じて,境界値との温度差Δtを求めます.境界値にこの温度差Δtを加えると,所望の温度値が得られます.
温度が氷点下の場合には,Δtを10℃から引いてΔt'を求め,一つ上のレンジの境界値に絶対値加算(減算)します(図6).例えば境界値が-20℃,Δtが3.6℃の場合,Δt'=10.0-3.6=6.4℃を得て,一つ上の境界値の-10℃に絶対値加算して-16.4℃を得ます.
図5 得られたデータ(カウンタ値)から温度を算出する
温度が上がると抵抗値は下がり,クロック発振の周波数が高くなってカウンタ値が増える.グラフの傾きが線形ではないので,温度レンジを10℃ごとに区切り,それぞれのレンジ内で傾き値(カウンタ値と温度の間の係数)を設定する.
図6 カウンタ値から温度を算出する処理の流れ
温度が氷点下の場合は一つ上のレンジの境界値を利用して絶対値加算(減算)する.