温度を測る ~ サーミスタの利用

ここではサーミスタを用いて、温度を測定する方法について説明します。

温度を測るアナログ 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 はバランス抵抗といいます。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 基礎からの IoT 入門