PSoCの使い方:熱電対温度計の製作
17-December-'09 08:24
Age: 262 days



Category: PSoC



以前の自作のデジタル温度計、pHメーター、心電計で報告した通り、IC温度センサーが入力部(青い端子)の近くに付いているのでサーモカップル(熱電対プローブ400円など)を繋ぐだけで低温(-200゚C)から高温(+1250゚C)まで測れるデジタル熱電対温度計になってしまいます。

原理は比較的明快で、K型サーモカップルの場合、先端とコネクター部分の温度差に比例して1゚C当り40.7μVの電位差がコネクターのピン間に発生します。つまり、先端が10゚C高いと0.407mVの電位差が発生します。この電圧を測って温度差に変換してコネクター付近にあるIC温度センサーの温度に加えるとプローブ先端の温度が計算できます。

右上の写真のPSoCを使った電圧計はアンプを何倍に増幅すれば良いのでしょうか?アナログブロックを2つ使ったINSAMPの場合、増幅率は16倍が最高なので、とりあえず16倍で色々な温度を測ってみました。16倍の場合、1゚Cの温度差は16 x 0.0407 = 0.6512 mVです。右上の写真のようにコネクター付近のIC温度計の温度とほぼ同じであればでサーモカップルの電圧はゼロ付近になることが分かります。色々な温度は水とお湯を混ぜて作ってみました。サーモカップルの先端を水に入れて発生する電圧を測ってみると10゚Cの温度差で6.3mV程になっていました。10~20゚C付近は6.3mV以下のことが多く80~90゚C付近は6.4mV位でした。

アンプのオフセットは入力短絡時の電圧を記憶しておき計算で除去しています。同様に、アンプのノイズもデータ処理時にFIRフィルターを使って除去しています。現在のFIRの設定では0.1秒ごとにAD変換して1.5秒間ほどのサンプリングデータを加重平均しています。FIRフィルター処理後の電圧ノイズは約0.1~0.2mVになります。なので、電圧増幅16倍後のノイズを温度に換算すると約0.1/0.6512~0.2/0.6512(つまり、温度ノイズ0.15~0.31゚C)となります。0.1゚Cの温度精度が欲しい場合は48倍ほどの電圧増幅をする必要があると考えられます(アンプのノイズが増加しなければ、、)。もう一つの方法は、FIRフィルターの計算時間幅(計算サンプリング数)を長くしてノイズを減少させることです(長時間の平均を取るとレスポンス時間が犠牲になります)。

残った仕事は、PSoCデザイナーでCプログラムを書くことです。サーモカップルの電圧から温度差を計算して、コネクター付近のIC温度計の温度を計算して(LM35の場合、出力電圧x0.1)、この2つの温度をたし算するプログラムです。サーモカップルの電圧の計測誤差(1゚Cの温度差の0.65mVからのズレ)はPSoCアンプの増幅率の誤差もあるようです。63と65の誤差率は約3%です。データシートによるとアナログアンプやADコンバーターの増幅率の誤差3%位はやむを得ないようです(これはAD変換の計算をするときに誤差率を考慮して補正できます)。

計測誤差を補正できたとしても、更に厳密には、Kタイプの熱電対の1゚C当り40.7μVの電位差も近似ですし直線からのズレも補正する必要がありそうです。サーモカップルの詳しい情報はウィキペディアの英語版が参考になりそうです。多項式近似(0~500゚Cの間では9項)をすれば良いようです。もっと簡単には、代表的な温度に対する電圧をルックアップテーブルにしておいて各温度はルックアップテーブルのデータを補間して計算すれば良さそうです。








<- Back to: メイン ・セクション

サイト内のページ検索

Searchword:

Search in:


(上のページ検索は通常ページのみでブログ風ニュースの内容は検索できません)