サーミスタでの温度測定、「inf」の出現に耐えられるか?
2023年3月21日:A/Dコンバータでサーミスタの抵抗値を読む サーミスタをつなぐ場所は?
で問題にしましたが、A/D入力するサーミスタをつなぐ位置が重要です。
サーミスタを電源側につなぐと、
温度の上昇でサーミスタの抵抗値が減少
それに連れてA/D値が上昇
となり、温度が上がるとA/D値も上がり、感覚的に
合うのでしょう。
・A/D値からサーミスタの抵抗値の計算式
このサンプルとして
・おもろ家さんのArduino 入門 Lesson 18 【サーミスタ編】
のスケッチ使わせてもらいます。
おもろ家さんの「つなぎ」でもサーミスタは電源側。
基準抵抗がGND側です。
この時の問題点をお復習い。
(a)サーミスタの接続線が短絡したら
(b)サーミスタが外れてオープンになったら
まず(a)。
A/D値はフルスケールの「1023」に。
その結果、サーミスタの抵抗値は
(1024÷1023 - 1) ×10kΩ
となり、約9.8Ω。
B定数による温度計算に進むと352℃という
値が出てきます。
次に(b)
A/D値は「ゼロ」になり、サーミスタの抵抗値計算で
「ゼロ除算」が生じます。
その結果、抵抗値は「無限大」。
続く、温度計算では「ケルビン温度」の「-273.15℃」が
出てきます。
※Arduino UNOの環境ではゼロ除算では
止まらず、とりあえず計算は進みます。
実際の液晶表示を見てみましょう。
抵抗値の箇所に「inf」という見慣れない「値」が出現します。
※inf=無限大
print()やdtostrf()に食わせると「inf」
という「文字」が出てきます。
lround()で整数変換すると0x80000000
(long値のマイナス目一杯)になって
しまいます。
サーミスタで温度制御していたら、
(1)いつまでたってもオンしない (a)のとき
(2)いつまでたってもオフしない (b)のとき
状態が出現します。
(1)は、放っておいてもとりあえず周囲温度に馴染む
でしょうが(2)の状態が加熱しっぱなしとなり危険です。
何らかの警報的処置(表示だけでも)が必要に
なるのがわかっていただけるかと。
※トランジスタ技術2024年6月号 のトラ技Jr.コーナに
掲載してもらった4チャンネル温度計の製作 では、
温度・抵抗値テーブルから最高値(温度低)と最低値
(温度高)を拾ってきて、値として規制するように
しました。
※プログラムエリアがあんましないので
手抜き。
オープンだと「-20.0℃」、短絡だと「120.0℃」を
出力します。
| 固定リンク
「重箱の隅」カテゴリの記事
- 1/1023監視団 活動中!(2025.03.10)
- DIPのLMC6482えらい高くなった(2025.03.07)
- 因縁のボリューム記号 トランジスタ技術2025年3月号(2025.02.17)
- ボリューム記号のボヤキ、トラ技2025年3月号の別冊付録に再掲載(2025.02.10)
- NECは3段タイプの発振回路をすすめてる(2025.01.31)
「温度測定」カテゴリの記事
- コテ先温度を読みたいゾ う~む。(2024.05.24)
- ハンディ熱電温度計 AD-5602(2024.05.21)
- サーミスタでの温度測定、「inf」の出現に耐えられるか?(2024.05.13)
- 今日の修理:熱電温度計(2023.11.05)
- 120W電子負荷 予備実験#2 冷やすのはファンだ!(2023.10.10)
「1023 vs 1024」カテゴリの記事
- Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMの例(2025.03.22)
- 1023 vs 1024:AVRマイコンとPICマイコンのデータシートより(2025.03.19)
- 1/1023監視団 活動中!(2025.03.10)
- おっと。map関数の計算桁に注意(2024.10.06)
- サーミスタでの温度測定、「inf」の出現に耐えられるか?(2024.05.13)
「トランジスタ技術」カテゴリの記事
- 失敗は成功の母<第3回>: 同じ型名なのに内部回路が違う!?(2025.04.16)
- 「ペイル・ブルー・ドット」が読める「暗号の子」(2025.03.29)
- 1/1023監視団 活動中!(2025.03.10)
- 因縁のボリューム記号 トランジスタ技術2025年3月号(2025.02.17)
- ボリューム記号のボヤキ、トラ技2025年3月号の別冊付録に再掲載(2025.02.10)
コメント