Arduinoの基礎 - 温度センサ

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2020年7月30日 (木) 12:53時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == ここでは、温度センサとして人気のあるTMP36とNTCサーミスタ(MF52-103)の使用方法を記載する。<br> <br><br> == TMP36の使用…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

ここでは、温度センサとして人気のあるTMP36とNTCサーミスタ(MF52-103)の使用方法を記載する。


TMP36の使用方法

TMP36の概要

TMP36は、アナログ出力温度測定ICである。
サーミスタと違い、TMP36において、出力電圧が測定範囲(-40℃〜125℃)では10[mV/℃]とほぼ線形になる。

温度T[℃]は、次式で得られる。
… (1)

正確な計算式はデータシートを参照する。
TMP36のデータシートには次のような記載がある。

Arduino TMP36 1.png


すなわち、TMP36では、1[℃]ごとに電圧が10[mV]上がり、オフセットが0.5[V]なので、Vout[V]は次式となる。
… (2)
この(2)式を整理すると、上の(1)式になる。

入力電圧Vsは、2.7[V]〜5.5[V]である。

TMP36の接続は下図の通りである。
下図の出力ピンであるVoutを、Arduinoで測定する。
また、パスコンは0.1[μF]のセラミックコンデンサを使用して、TMP36のVsに近い場所に配置する。

Arduino TMP36 2.png


サンプルコード

Arduinoを使用してTMP36の出力を読む場合、アナログ入力値を読むことでできる。(Arduinoで電圧を測定する(アナログ入力を読み取る)を参照すること)
analogRead()関数の戻り値は、直ちに電圧が得られるわけではなく、0[V]から5[V](または、0[V]から3.3[V])が、0から1023の値となることに注意すること。


NTCサーミスタ

NTCサーミスタの概要

このセクションでは、NTCサーミスタを用いて、温度を測定する方法について記載する。

温度を測るアナログICとしては、上記セクションで説明したTMP36もあるが、サーミスタはより安価である。
このセクションで使用するNTCサーミスタは、MF52-103である。

サーミスタ(thermistor)の名前は、"thermal"(熱)と"resistor"(抵抗器)から由来で、温度変化によって抵抗値が変化する抵抗器のことである。
サーミスタの種類により、変化する温度で抵抗値はいくら変化する(または、抵抗値がいくら変化すれば温度はいくら変化する)という計算ができる。

サーミスタには大きく分けて、NTCタイプとPTCタイプの2種類ある。
NTCは温度の上昇と共に抵抗値が下がるタイプで、PTCはその逆で温度が上昇すると抵抗値も上昇するタイプである。
一般的に、サーミスタと言えば、NTCタイプのサーミスタのことを指す。

また、10[kΩ]のNTCサーミスタと言う場合、25[℃]の時に抵抗値が10[kΩ]であることを意味する。

温度の取得

NTCサーミスタでは、次式で温度が取得できる。
ここで、R0、T0は、それぞれ25[℃]での抵抗値[Ω]と温度[K]である。
… (1)

例えば、10[kΩ]のサーミスタを使用すると、R0は10[kΩ]、T0は298.15[K](=25[℃])である。
摂氏温度からケルビンに換算する場合は、273.15を加算する。
BはサーミスタのB値と呼ばれる定数で、サーミスタの種類ごとに異なる。Bまたはβとして、データシートに記載されている。
なお、MF52-103のB値は、3950である。

上記の(1)式をTについて解き、抵抗値Rの関数にすると次式(2)となる。
Tはケルビンで得られるので、摂氏への換算は273.15を減算する。
… (2)

抵抗値の取得

Arduinoを使用してサーミスタの抵抗値を取得する場合、抵抗値を直接測定することはできないが、電圧を測定して抵抗値に変換することでできる。
そこで、次のような分圧回路を構成して、Voutを測定する。

Arduino TMP36 3.png


ここで、Rはサーミスタの抵抗値、R1は分圧測定のために導入した抵抗である。
例えば、10[kΩ]のサーミスタに対して、R1は10[kΩ]程度とする。
すると、出力電圧Voutの分圧式は次式(3)となり、この式をRについて解くと(4)式となる。
… (3)
… (4)

なお、この分圧回路で設定したR1をバランス抵抗という。