温度センサデバイスについて改めて調べました。

最終更新日 2022年1月7日

以前Arduinoで使用可能な温度センサモジュールについて調べました。
今回温度計測のBasicな部分を理解すべく改めて調べておくことにしました。実生活に役立つような情報として備忘録化したいです。

Arduinoで温度計測する場合、アナログ電圧入力で計測する場合とI2Cで通信して取得する場合が殆どかと思います。温度センサデバイスの原理を意識することは殆どありません。原理を意識して、そのデバイスの特性も理解しておくことは有意義かと考えます。


熱電対】

異種金属の一端を接合すると接合端と解放端の間に、接合端と解放端間の温度差に応じた熱起電力が発生する現象(ゼーベック効果)を利用した温度センサです。

金属種によって特性が判っており、卑金属系のK、E、J、Tと貴金属系のB、R、Sなどがあります。
測定温度範囲や変化度を元に選択が出来ます。

上図からも判断出来ますが、K-Typeで変化量4mV/100℃程度です。ArduinoのADCでは計測困難ですので、前段にゲインアンプを用意して増幅値をADCするか、専用のモジュールを介して計測することになるかと思います。
MAX31855を使ったモジュールもありますが、ソケット対応までしたMCP9600の方が使いやすそうです。
※MAX31855は14bit、MCP9600は18bit相当です。


測温抵抗体】

測温抵抗体は、金属または金属酸化物が温度変化によって電気抵抗値が変化する特性を利用し、その電気抵抗を測定することで温度を測定するセンサです。RTD(Resistance Temperature Detector)と呼ばれています。サーミスタと同等だと思います。

一般的なモノとして白金(Pt100)を用いJIS-C1604で規格化されたRTDが有名です。※0℃の時100Ωとなる。
特徴として、高精度な温度計測が出来る一方、高温の計測には不向きと云われています。

種類 測定範囲 コメント
白金測温抵抗体 −200〜+660°C  
銅測温抵抗体 0〜+180°C  
ニッケル測温抵抗体 −50〜+300°C  
白金・コバルト測温抵抗体 −272〜+27°C  

3線式が一般的とされ、定電流励起の場合は以下のような配線で計測することになります。

PT100で抵抗値の変化量は38.5%(0-100℃)という情報があります。十分な変化量ではあります。
RTDの計測のためには励起電流を供給する必要があります。
Arduinoから直接電流制御は困難なので、専用のモジュールを用意し、それを介して計測すべきですね。

MAX31865RTDというモジュールを使った形態が一般的かなと思いまして、構成を紹介します。


サーミスタ】

温度変化に対して電気抵抗の変化の大きい抵抗体のことである。計測温度範囲は精々-50℃から150℃程度。
特性によって3分類されている

《NTC》

温度の上昇に対して抵抗が減少するサーミスタ。一般的に流通。
ニッケル、マンガン、コバルト、鉄などの酸化物を混合して焼結して作成する。
安価 村田NXFT15XHで1個数十円 https://akizukidenshi.com/download/ds/murata/NXFT15-series.pdf


0-100℃の変化に対して抵抗値変化は数十倍です。B値はこの変化量を示しており大きい方が感度が高いことになります。
三菱マテリアル:TH11-3H103Fの特性は以下の通りです。B値=3370K です。

Vcc=3.3V 12bit深度で十分な結果が得られるはずです。

《PTC》

ある温度をこえると温度の上昇に対して急激に抵抗が増大するサーミスタ。
温度計測と云うより高温時の電流制御(遮断)として利用出来る。
セラミックPTC:半田ごてのヒータ制御
ポリマーPTC:ポリスイッチ、電子カーペットの過熱保護

《CTR》

ある温度をこえると急激に抵抗が減少するサーミスタ


放熱温度計】

放射温度計は、物質がその温度に相当した赤外線を放射している事を利用し、その放射エネルギーの量を測定して物質の温度を求める温度計です。 対象に触れずに温度が分かると云う点で他の温度計測とは異なります。
応答速度も比較的速く、また、温度分布の計測も容易です。

AliExpressで販売されている商品なら1000円以下で購入出来ます。安価になりました。


ダイオードを通過する電圧変化が温度変化に比例する計測もあります。半導体温度センサと称されます。
電気自動車の駆動用モータドライバの温度管理にはユニット内に温度計測用のダイオードが装備されている例がありました。
Siダイオードの順方向の電圧変化(Vf)が-2mV/℃程度です。計測可能な変化量です。車の場合冷却水を流しているので、100℃を超えることは基本ありません。


Arduinoでよく使用される温度センサにMAXIMのDS18B20があります。形態からはサーミスタのセンサと間違えてしまいます。
しかし大きな違いがあります。出力信号がアナログ電圧ではなくデジタル信号ということです。


DS18B20の特徴として48bitのシリアル番号が振られている点です。とんでもない数のセンサを同列に扱うことができます。※ちゃんとシリアルチェックをすればですが。ただ、ライブラリ次第ですが、シリアル番号を区別して0,1,2・・・とindexで区別してくれるものもあるようです。
精度ですが、設定次第で、0.5%(9bit)/0.25%(10bit)/0.125%(11bit)/0.0625%(12bit)と切り替えることができます。

パッケージ自体がセンサなので測定温度範囲は-55〜125℃よりもかなり狭いと思います。※-10℃〜+85℃ までは、±0.5℃の精度とのことです。

このコードはちょっと特殊なので実行確認が必要ですね。別途検証します。


戯言(nonsense)に戻る


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。