パラメータ設定
温度スイープ
リセット
電源電圧 Vs = 3.3 V、直列抵抗 Rs = R0 とした電圧分圧器の出力です。
抵抗-温度特性 R(T)
横軸=温度 T(°C)/ 縦軸=抵抗 R(kΩ・対数)/ 黄=現在点 (T, R)、青=基準点 (T0, R0)
電圧分圧器回路
3.3 V 電源 → 直列抵抗 Rs = R0 → サーミスタ R(T) → GND。中点電圧が Vout
理論・主要公式
NTC サーミスタの抵抗-温度特性を β パラメータモデルで表します。T と T0 は絶対温度(K)です。
抵抗-温度特性(β パラメータモデル):
$$R(T) = R_0\,\exp\!\left[B\!\left(\frac{1}{T} - \frac{1}{T_0}\right)\right]$$
電圧分圧器の出力電圧(Vs = 3.3 V、直列抵抗 Rs = R0):
$$V_\text{out} = V_s \cdot \frac{R(T)}{R(T) + R_s}$$
温度感度(負の値:温度上昇で抵抗減少):
$$\frac{dR}{dT} = -\frac{R(T)\,B}{T^2}$$
B 定数は典型的に 3000〜4500 K で、25°C 付近では温度 1°C の変化で抵抗が約 4〜5 % 変化します。
NTC サーミスタ シミュレーターとは
🙋
エアコンの吹き出し口に小さい温度センサが入ってますよね。あれってどうやって温度を測ってるんですか?
🎓
あの黒い米粒みたいなのが NTC サーミスタだ。「温度が上がると抵抗が下がる」性質を持つ半導体で、$R(T) = R_0\,\exp[B(1/T - 1/T_0)]$ という指数関数的な特性を持つ。マイコンが分圧回路の電圧を読んで、そこから抵抗値、ひいては温度を逆算する仕組みだよ。シミュレーターで温度スライダーを動かしてみて。R が指数的にガクッと変わるのが分かるはずだ。
🙋
B 定数って 3950 とか出てますけど、これは何の数字なんですか?データシートでよく見かけます。
🎓
B はそのサーミスタの「効き具合」を表す材料定数で、単位はケルビン(K)だ。B が大きいほど温度に対する抵抗変化が急峻になる。25°C の周辺では、1°C の温度変化で抵抗が約 4〜5% 変わる感度があって、これは Pt100 の約 10 倍。シミュレーターで B を 3000 と 5000 で比べると、グラフの「傾き」がはっきり違うのが見える。これが感度の違いだ。
🙋
電圧分圧器の図がありますけど、なんで Rs に R0 と同じ値を使うんですか?適当でも良さそうですが。
🎓
いい質問だね。Rs = R0 にすると、基準温度(25°C)で Vout = Vs/2 = 1.65 V になる。ADC のレンジ中央を使えるから、温度が上下どちらに振れても電圧変化を正確に読み取れるんだ。Rs を小さくすると低温側で飽和、大きくすると高温側で飽和してしまう。回路図の Vout = ' で表示される値が、温度を変えると 0 V〜3.3 V のどこを移動するか確認してみて。
🙋
なるほど!じゃあ実際の温度計測はマイコンで Vout を読んで、逆算するんですか?
🎓
その通り。ADC で Vout を読んで、まず R = Rs · Vout/(Vs − Vout) で抵抗を求める。次に B 式を T について解いて、$T = 1/(1/T_0 + \ln(R/R_0)/B)$ で温度に変換する。組み込み機器ではルックアップテーブルで近似するか、より高精度が必要なら Steinhart-Hart 式 $1/T = A + B\ln R + C(\ln R)^3$ を使う。広い温度範囲なら後者が ±0.1°C で測れる。
物理モデルと主要な数式
NTC サーミスタの抵抗-温度特性は、半導体の伝導電子がバンドギャップを越えて励起される過程の活性化エネルギー型挙動から導かれます。最も簡潔なモデルが β パラメータモデルで、絶対温度 T(K)と基準温度 T0 における抵抗 R0 を使って $R(T) = R_0\,\exp[B(1/T - 1/T_0)]$ と表します。B 定数は材料固有の活性化エネルギーに対応し、典型的に 3000〜4500 K の値を持ちます。
温度感度は微分すると $\frac{dR}{dT} = -\frac{R\,B}{T^2}$ となり、低温ほど(T が小さいほど)、また R が大きいほど感度が高くなります。これは NTC サーミスタが室温〜100°C 程度の温度域で高い分解能を発揮する理由です。一方、高温域では R が指数的に小さくなるため、絶対値としての感度は急速に失われます。
実用回路では電圧分圧器を組み、$V_\text{out} = V_s\,R(T)/(R(T)+R_s)$ の関係から ADC で温度を読み取ります。Rs に R0 と同じ値を選ぶと、基準温度で出力が中央電圧 Vs/2 になり、ダイナミックレンジを最も有効に使えます。
実世界での応用
家電と温調機器: エアコン、冷蔵庫、給湯器、コーヒーメーカーなど、家庭の温調機器の大部分で NTC サーミスタが使われています。安価で応答が速く、−30°C〜+150°C の範囲で十分な精度を持つため、白物家電の標準センサとなっています。
自動車エレクトロニクス: エンジン冷却水温度(CTS)、吸気温度、室内温度、排気温度などの計測に NTC サーミスタが多用されています。エンジン制御 ECU は冷却水温に応じて燃料噴射量や点火時期を補正するため、サーミスタの精度が燃費や排ガス性能に直結します。
リチウムイオン電池の温度監視: BMS(バッテリーマネジメントシステム)は各セル付近に NTC サーミスタを配置し、充電・放電時の温度を監視します。過熱を検出したら充電を停止する安全機構の中核となるセンサで、EV やノート PC、スマートフォンのバッテリーに必ず実装されています。
医療機器: 電子体温計、保育器、人工呼吸器、点滴用加温器など、医療現場でも NTC サーミスタが体温や流体温度の計測に使われています。小型で熱容量が小さいため、1 秒以下の応答で迅速な測定が可能です。
よくある誤解と注意点
まず最も多い誤解が、B パラメータモデルが全温度範囲で正確だと思い込む ことだ。式は基準温度 T0 付近では誤差 1°C 以内で実用的だが、−40°C や +150°C といった両端では数°C ずれる。これは B 定数自体が温度依存性を持つため。広い温度範囲で高精度が必要なら Steinhart-Hart 式を使い、3 点以上の校正データから A, B, C 係数を決定する必要がある。シミュレーターで T を両端まで動かしたとき、実機との差が出やすいことを意識しよう。
次に、NTC サーミスタを電源にじか接続すれば良いと考える ミス。サーミスタには電流が流れると自己発熱が起こる。例えば 10 kΩ のサーミスタに 1 mA を流すと 10 mW の発熱があり、空気中では 1°C 程度の自己加熱で測定値が誤差になる。Vs = 3.3 V、Rs = 10 kΩ なら最大電流は 0.165 mA 程度で発熱は 0.5 mW 以下に抑えられる。低消費にするほど自己発熱は減るが、ノイズに弱くなるトレードオフがある。
最後に、応答時間を仕様書の値そのまま使えると考える 落とし穴。データシートの応答時間は特定の媒体・流速・パッケージ条件での値で、実装条件が違えば大きく変わる。リード線付き露出型なら数百 ms、シース型なら数秒以上かかる。流体測定なら流速、表面測定なら接触圧と熱抵抗を考慮し、必要なら一次遅れ系として補正フィルタを設計する。
よくある質問
NTC と PTC サーミスタの違いは何ですか?
NTC(Negative Temperature Coefficient)は温度上昇で抵抗が減少し、温度計測用に使われます。PTC(Positive Temperature Coefficient)は温度上昇で抵抗が増加し、特定の温度(キュリー点)で急激に抵抗が増える特性を活かし、過電流保護や自己制御ヒーターとして使われます。両者は用途が大きく異なり、温度を「測る」のは NTC、温度から「保護する」のは PTC が一般的です。
B 定数はどうやって測定するのですか?
2 つの異なる温度 T1, T2 でサーミスタの抵抗 R1, R2 を測定し、$B = \ln(R_1/R_2) / (1/T_1 - 1/T_2)$ で計算します。一般的には 25°C と 50°C、または 25°C と 85°C の 2 点で求めた B 値がデータシートに B25/50, B25/85 と記載されます。広い温度範囲で精度を求めるなら、複数の温度区間ごとに別の B 値を使うか、Steinhart-Hart 式の 3 係数モデルを採用します。
サーミスタを直接 ADC に繋いで温度に換算するコードは?
分圧回路の Vout を ADC で読み、まず R = Rs · Vout/(Vs − Vout) で抵抗値を計算します。次に B モデルを温度について解いた式 T_K = 1/(1/T0_K + ln(R/R0)/B) で絶対温度を求め、°C 表示には -273.15 します。Arduino や ESP32 等のマイコンでは、ルックアップテーブルで処理を高速化することも一般的です。Steinhart-Hart 式を使うと広い温度範囲で ±0.1°C の精度が得られます。
自己発熱を抑えるにはどうすれば良いですか?
最も効果的なのはサーミスタに流れる電流を小さくすることです。分圧抵抗 Rs を大きく取る、サーミスタへの印加時間を短くする(パルス測定)、高インピーダンスの ADC を使う、などの方法があります。一般に消費電力が 0.1 mW 以下なら自己発熱の影響は無視できます。空気中より水中の方が放熱が良いため、媒体ごとに許容電流が変わる点にも注意が必要です。