« 回路設計はデータシートの熟読から。 スペックをちゃんと調べろ! | トップページ | 「ダイソー ミニケース 5個組」が見つからない »

2022年9月29日 (木)

103JTサーミスタの自己発熱。 5Vで10kΩはちょっとなぁ

前記事2022年9月28日:回路設計はデータシートの熟読から。 スペックをちゃんと調べろ!
は、サーミスタを使った温度測定に絡みます。

Arduinoにサーミスタをつないで温度測定・・・
複雑な計算式も入るし、サーミスタを指で触れば温度変化が
出てくるし。
マイコンを活用してる気分になれます。

しかし・・・ちょっと待てぇ
  そのやり方は正しくない。
  サーミスタが持つ性能をつぶしているぞ。
という例を見かけるのです。
  ネットでも初心者向けの本でも。

安価で入手しやすいからとよく出てくるのが
セミテックの「103JT」
  応答性が良いので私も愛用しています。

このサーミスタの特性を分かって「こんなもんだ」と
使っているのなら仕方ないのですが、きっと分かって
ないのだろうなぁというスペックが「熱放散定数」。

サーミスタに電流を流した時、その消費電力で自分が
発熱してしまい、測定温度に誤差が生じます。
その影響度合いで、単位が「mW/℃」。
「ンmWの測定電力で1℃上がる」という指標です。
103JTだと「約0.7mW/℃」というスペックが出ています。

  ※形状の大きな103AT-11だと3mW/℃、
   103AT-2だと2mW/℃。
   大きくなると頑丈になりますが、応答が
   遅くなります。

103JTの約0.7mW/℃、これ、なかなかキツいスペックなんです。
よく出てくる例がこの図のような接続。
【図1】
T1_20220929114401
サーミスタに直列に10kΩの抵抗を入れて5V電源に接続。
ArduinoのADCは、基準電圧=5Vで変換。
   ※
サーミスタを使って温度測定という解説記事、
    たいていはこれ。

これだとどうなるか。
サーミスタの抵抗値とRsが同じ値になったときが
最大の消費電力になります。
   ※103JTだったら10kΩの25℃
どれだけの発熱があるかをグラフに。
Cap036
各温度での抵抗値からサーミスタの消費電力を算出し、
熱放散定数で温度上昇を計算しました。
  ※5Vだけでなく、3.3V、2.5V、2.0V、1.25Vの
   電圧の時も示しています。

測定電圧=5V、Rs=10kΩだと10~40℃の温度域で
およそ0.8℃の温度上昇が生まれると。
Arduino UNOの10bit ADCだと、0.1~0.2℃が
分解能です。
それに0.8℃が積み重なるのは・・・ちょっとなぁ。です。
  ※これをどうにかしたいと思うか、
   こんなもんでエエやんと置いとくか・・・

この温度測定方法でサーミスタの消費電力=発熱を
減らすには・・・
 ・測定するときだけ通電する
 ・測定電圧を下げる
 ・Rsを大きくする
この3つです。

Rsを変えた時の様子がこのグラフ。
15kΩと20kΩにした時の発熱です。
Cap037
Cap038
Rsを大きくするより、サーミスタへの供給電圧を
下げる方が効果があります。
   (電力の計算式 ExE/R、IxIxR)

※Rsを4.7kΩにしたら・・・
Cap001_20220930145401
40~50℃あたりで、自己発熱が1.9℃ほど積み
上がってしまいます。

~~~~~~~~~~~~~~~~~~~~~~~~
サーミスタへの供給電圧を下げての測定方法、
どんなのが・・・
例えば、こんな回路。
【図2】
T2_20220929114901

サーミスタへの供給電圧とA/Dコンバータの基準電圧
を分けてやると、測定温度範囲が自由に決められます。
ところが、この回路だとやっかいな問題が出てくるの
です。
VthmとVzが変動したら、それが測定系の誤差に
つながります。
サーミスタの抵抗値を正しく算出するにはVthmとVzの
絶対値が必要なのです。
どちらかの電圧が動くとアウト。誤差が生じます。
  ※動くなら二つが比例して。
  ※VthmをそのADC測定系で計るのも方法。

それを改善するのがこの方法。
【図3】
T3

【図1】は5V電源でしたが、ADCの基準電圧と
サーミスタへの供給電圧を両方とも下げて発熱を
防ぎます。
二つを同じ電圧にというのが重要で、サーミスタの
抵抗値はRsを基準に算出でき、Vzは計算式から除け
ます。
このRsは「神様抵抗」(俺が正しい!)となります。

Arduino UNOで使っているATmega328Pマイコンのように
Vref電圧が外に取り出せるなら、こんな方法も可能です。
【図4】
T4
Arduino UNOだと「1.1V」が取り出せます。
  ※測定電圧が低い方が自己発熱が小さくできる。


サーミスタを使った測定で、もう一つのグラフを示しておきます。
ADCの分解能を変えた時、測定温度の最小値がどう変化するかを
描いています。
神様抵抗Rsを10k、15k、20kにした時を計算してみました。
Cap039_20220929115501
Cap040_20220929115501
Cap041_20220929115601

Arduino UNOの10bit A/Dだと、常温域で0.1~0.2℃の
分解能がギリギリになることが見えます。
発熱の影響を小さくしようと、Rsを大きくすると、
サーミスタの抵抗値が小さくなる高温域での分解能が
落ちてしまいます。
  ※Vz=ADCの基準電圧=Vthmとしてのグラフです。
   Vz=Vthmが変わっても分解能は変わりません。

 

※関連
2021年8月11日:サーミスタ温度計、何ビットのA/Dコンバータがいるか?
2021年7月31日:16bit A/Dコンバータ LTC2460 サーミスタ103JTを使った温度測定で・・・
2018年2月13日:ピピちゃん温度計・ヒータ制御

※ネット検索
ラジオペンチ:Arduiono を使ってサーミスタで温度を測る(2019-11-08)
ラジオペンチ:ペルチェ温度コントローラーの製作 (温度センサーをサーミスタに変更)(2019-11-11)
セッピーナの趣味の天文計算:サーミスタで正確な温度を測るコツ - 基準抵抗(R0)、B定数、熱拡散係数(2015年2月18日)
マカロニペンギンの健忘録:#arduino で温度測定-自己発熱対応版(2011年11月17日)

あれこれ見てますと・・・
サーミスタの抵抗測定の手順で、A/D電圧を求める時、
件の「1/1023」 が多く出現しています。
例えば、
Decent dress:Arduino Nano と NTCサーミスタで温度計測 (2018/11/29)

本来、Rsを神様抵抗としての測定系では、A/D変換の
基準電圧値は数式から除外されます。
しかし、電圧計算の1/1024を1/1023にしてしまうと
「‰」単位の誤差が生じます。   ※10bitのADCで

jh4vaj:Arduinoでサーミスタを使って温度計を作るのに、電圧を求める必要はない(2021/3/9)
jh4vaj:ArduinoのADコンバータ、1023?1024?( )

|

« 回路設計はデータシートの熟読から。 スペックをちゃんと調べろ! | トップページ | 「ダイソー ミニケース 5個組」が見つからない »

AVRマイコン」カテゴリの記事

温度測定」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 回路設計はデータシートの熟読から。 スペックをちゃんと調べろ! | トップページ | 「ダイソー ミニケース 5個組」が見つからない »