センサのためのマイコンを選ぶ ──センサ利用のノウハウをファームウェアとして提供

三好 彰, 丸山久則

tag: 組み込み

技術解説 2004年10月 4日

2) 湿度算出

 湿度算出も基本的な動作は温度換算の場合と同じですが,先ほど説明したように,温度が決まらなければ湿度が得られないため,最後に温度補正を行って所望の湿度値を求めます.

 まずはじめに,5℃から45℃まである特性カーブの中から25℃のカーブを採用し,九つの湿度レンジを設定した湿度データ・テーブルを作成しました(図9).得られたカウンタ値がどの湿度レンジに該当するかを調べたあと,線形補間を用いて湿度値を算出します.湿度の有効数値は,全体の精度を勘案し,1%のけたまでとしました.

 さて,これで基本的な湿度値が得られたわけですが,これは温度が25℃の場合の値であるため,現在温度における湿度値に換算する温度補正が必要になってきます.本事例では,先の九つの湿度レンジに対応して,各レンジごとの温度補正係数を,データ・テーブルとして設定しました.これが図9で示した平行四辺形の部分です.グラフでは湿度40%付近がもっとも大きな平行四辺形になっていますが,センサ素子の湿度特性を見ると,やはりこの部分がもっとも温度による湿度値の差が大きい部分であり,データ上は0.82%/℃という補正係数を与えています.25℃と現在温度の差にこの補正係数を乗じることで,湿度補正値が求められます.最後にこの補正値を先に求めた基本湿度に加えて,所望の湿度値を得ます.

 また,湿度センサのデータ有効範囲が,温度については5~45℃,湿度については20~90%となっているので,得られたデータがこの範囲に入っていれば有効と判断して,そのデータを出力します.有効範囲を外れた場合は無効と判断し,エラー・フラグなどを出力します.

 ここで注意が必要なのは,グラフ上の平行四辺形の角の部分です.一つの湿度区間を一つの係数で補正するため,湿度境界値の部分で湿度の不連続を生じます.具体的には,連続的に湿度が変化した場合,値が不連続になったり(ジャンプ),繰り返したり(逆戻り)するという現象が生じます.実際に,1~3%程度のジャンプや繰り返しが約10ヵ所で発生しました.データ・テーブルを2次元的に細かく設定すればこの現象は回避できますが,メモリやCPUパワーの消費が大きく,4ビット・マイコンによる安価なシステムには採用しにくいものです.筆者らは,計測機器として使用するのでないのなら,現状のもので実用に耐えうると判断しました.実際にこのファームウェアを用いて室内の湿度を計測してみると,湿度値が不連続になる場面に気づくことはなく,違和感はありませんでした.

f09_01.gif
図9 得られたデータ(カウンタ値)から湿度を算出する
まず,温度を25℃であると仮定して,線形補間によりカウンタ値から湿度を算出する.その後,温度補正をかける.すなわち補正係数を掛け合わせ,温度が高ければ湿度を平行四辺形の左側に,温度が低ければ平行四辺形の右側に寄せるようにする.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日