温度計測の定番のひとつにサーミスタがあります。サーミスタ(Thermistor)はThermally Sensitive Resistorと呼ばれる熱にセンシティブな抵抗体のことを指しています。この熱に敏感に抵抗値が変化する抵抗体の中に、温度の上昇により抵抗値が下がる負の温度係数をもつものが一般にサーミスタと呼ばれています。温度、抵抗値に比例関係が認められるので、多様な場面で温度センサとして利用されています。

 このサーミスタは、主に金属酸化物を高温焼結したセラミック半導体で、製造方法、構造によって各種の形状、特性のものが開発され、多様な用途に応じた製品が供給されています。
 今回は、次に示す石塚電子のATサーミスタ(高精度サーミスタ)103AT-11を使用します。25℃のゼロ負荷抵抗値は10.0kΩでB定数が3435Kとなっています。

adrsens100015.jpg

サーミスタの温度と抵抗値の関係
   基準温度時の抵抗値、測定時の温度とサーミスタの抵抗値、サーミスタのB定数との間には次に示す関係があります。基準温度は25℃が選ばれ、その時の抵抗値がデータシートに記載されています。あわせて、B定数がデータシートに記載されていますので、これらのデータをもとに次の式からサーミスタの抵抗値からサーミスタの周囲の温度を計算により求めることができます。
             R=Ro exp(B(1/T – 1/To))  ------(1)
                周囲の温度 T     抵抗値 R
              基準温度     To      基準抵抗値 Ro(基準温度の時の抵抗値) 
 データシートには温度と抵抗値の関係が数表でも示されています。この数表をグラフ化してグラフの曲線を用いて抵抗値から温度を求めることもできます。

サーミスタの抵抗値を求める回路
   サーミスタの抵抗値の変動を精密に測定するためにはブリッジ回路を組んでOPアンプでブリッジの出力を検出するなどの方法があります。多くのアプリケーションでは次に示すように、定電圧の電源に抵抗と直列にサーミスタを接続し温度変化に伴うサーミスタの抵抗値の変化を電圧変動として検出します。

adrsens110010.jpg Vccは電源電圧で定電圧化された電源を用いR1を3.3kΩの既知の抵抗を用います。
 センサの出力電圧 Voutが決まるとサーミスタの抵抗値Rは次のように計算されます。
         R=R1×(Vcc-Vout)/Vout  -------(2)
 このサーミスタの抵抗値から温度を求めるために(1)を変形し次の式を得ます。対数計算がありますが、Arduinoも対数関数が利用できますので、少々厄介な計算式でも対応できます。
 
                    T=1/(ln(R/R0)/B+(1/T0))    ---  (3)
 
 103ATはでT0 25℃の時の抵抗R0は10kΩで、B定数は3435Kとなります。温度は絶対温度で示しますので(3)のT、R以外は次のようになります。
             T0=25+273.15=298.15K
             R0=10k
             B=3435K

 次に示すArduinoのマイコンとLCDを用い、Voutの電圧をArduinoのアナログ入力で測定し関数を用いて計算しLCDに表示します。Cの関数では、自然対数 lnでなくlog()を使用しています。

adrsens100030.jpg   ブレッドボードには、3.3kΩの抵抗とサーミスタ103ATのリードを接続しています。抵抗は実測しましたら3.25kΩでしたので、R1=3.25kΩとして次回スケッチを作ります。
<神崎康宏>



トラックバック(0)

このブログ記事を参照しているブログ一覧: Arduinoとサーミスタで温度を計ってみる(1)

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/5899







newハイパー・マイコンmbedでインターネット電子工作


マイコンと電子工作 No.6


マイコンと電子工作 No.4


マイコンと電子工作No.1
サポート・ページはこちら