温度測定:サーミスタでの予備実験
サーミスタを使った温度測定、その予備実験のあれこれをzip
にまとめました。
・サーミスタ温度計算のテスト.zip
「Arduino UNO」のスケッチで、サーミスタの抵抗値(手で入力)か
ら温度が計算されるまでを、実験しています。
下の記事のまとめです。
・温度測定:サーミスタで
・サーミスタのB定数
この考え方を使って、
・サーミスタを定電流駆動
・12bit A/Dコンバータでサーミスタの抵抗値を測定
・液晶に表示
てなことをやってみます。
あれこれ調べましたが、サーミスタの「B定数」を細か
く区切って(実験では5℃ステップ)測定するという方
法で、温度計測を行っている例が出てきません。
サーミスタのメーカーが出しているB定数(例えば25〜85℃区間の)
をそのまま計算式に入れて使っている例しか見当たらないのです。
※注目記事 (このくらい)
・サーミスタによる温度測定の精度 - 2 - B定数の温度特性
・サーミスタで温度を測る - 温度と抵抗値の相互変換 - B定数について
(セッピーナさんは自己発熱による誤差まで言及されています)
サーミスタの精度、抵抗値として「1%誤差」のものが容易に
入手できます。
それが、温度としてどのくらいの誤差になるのかが、この
実験例でわかります。
しかし、この素子そのものの誤差より、B定数を固定的に扱って
しまうほうが、測定精度への影響が大きいのです。
メーカが出す、温度・抵抗値表の抵抗値を「正」として、
温度ステップごとのB定数を計算し、ステップ間の温度を
測定した抵抗値と計算しなおしたB定数から求めます。
浮動小数点を扱いますが、思ったほど遅くはなりませんでした。
※Arduino UNOは16MHzクロックのATmega328
8ビットマイコンです。
この4つの浮動小数点値から、
float ohm; // 測定抵抗値
float t0; // 基準温度
float r0; // 基準抵抗
float B; // B定数
関数「log」と除算を何回か使って温度を計算するのに、
250〜300マイクロ秒でした。
もっとかかるかと思ってた。
これだと、B定数をテーブルにしなくても良いかもしれません。
(今はあらかじめ温度・抵抗値表から計算した
ものをテーブルにしている)
B定数を毎度毎度計算しても大丈夫かも。
さて、これからハードの製作です。
|
2015年6月17日 15時54分
|
記事へ |
コメント(1) |
トラックバック(0) |
|
・電子回路工作 |
トラックバックURL:http://blog.zaq.ne.jp/igarage/trackback/4158/
※ブログ管理者が承認するまで表示されません
コメントをいただいてからあらためてメーカーの資料を読みあさりこれまでの実験結果を見なおしたら“秋月のステンレス管いり熱電対はK型+補償導線”という方に傾きつつあります。記事を書いた責任があるので最後までちゃんとしたいとは思いますが室温付近で温度を測るのに熱電対を使うのは馬鹿げているような気がしてきました(温度差を測るのであればこれより便利なものはありませんが)
サーミスタ温度計、どんな形になるのか楽しみにしています。私の方は理屈(?)の方は一休みしてチップサーミスタでハンダ付けしながら温度を測るとかやっていますのでそのうち記事にします (^^)