温度を測る ~ サーミスタの利用
ここではサーミスタを用いて、温度を測定する方法について説明します。
温度を測るアナログ IC としては TMP36 などもありますが、サーミスタの方がずっと安価です。
利用したサーミスタは NTCサーミスタMF52-103 です。
サーミスタ (thermistor) という言葉は、"thermal" (熱の) と "resistor" (抵抗器) とからきていて、 温度変化によって抵抗値が変化する抵抗器です。
サーミスタの種類によって、この温度で抵抗はいくつ(もしくは抵抗がいくつなら温度はいくつ)という計算ができることになっています。
サーミスタには大きく分けて NTC タイプと PTC タイプの二つあります。
NTC は温度の上昇と共に抵抗値が下がるタイプで、PTC はその逆で温度が上昇すると抵抗値も上昇するタイプです。
通常、特に注意書きなしで「サーミスタ」といったら、NTC タイプのサーミスタを指します。
また、「10kΩ の NTC サーミスタ」 といったら、25°C の時に抵抗値が 10kΩ であることを意味します。
抵抗値からの温度の取得 (NTC サーミスタ)
NTC サーミスタでは次の式で温度が取得できます。
ここで R0、T0 はそれぞれ 25°C での抵抗値と温度 [K] です。 前述の通り「10kΩ のサーミスタ」を使ったとなれば、もちろん R0 は 10[kΩ] で、T0 は 298.15[K] (=25[°C]) です。
摂氏温度からケルビンの換算は 273.15 を足すだけです。
B はサーミスタの B 値と呼ばれている定数で、サーミスタの種類毎に異なります。B とか β として、データシートに記載されているはずです。 私が利用したサーミスタでは 3950 でした。
上式を T について解き、抵抗値 R の関数に書き換えると次のようになります。
T はケルビンで得られるので、摂氏への換算は 273.15 引きます。
抵抗値の取得
上式から、抵抗値が分かれば温度がわかる、ということはわかりましたが、それではサーミスタの抵抗値はどのようにすれば取得できるでしょうか。
Arduino などを利用しているときには、抵抗値は直接測定できませんが電圧は測定できます。
そこで次のような回路を構成して、Vout を測定します。
ここで R はサーミスタの抵抗[Ω]、R1は分圧測定のために導入した抵抗です。10kΩ のサーミスタに対しては、10kΩ 程度とします。
すると、Vout の分圧は次のようになり、
R は次のようにわかります。
なお、この状況で設定した R1 はバランス抵抗といいます。