サーミスタでの温度測定、「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℃」を
出力します。
| 固定リンク
「重箱の隅」カテゴリの記事
- おっと。map関数の計算桁に注意(2024.10.06)
- リターンパスの無いオペアンプ入力回路(2024.05.31)
- サーミスタでの温度測定、「inf」の出現に耐えられるか?(2024.05.13)
- I2C液晶のアクセス、割り込みで処理しないようにすると(2024.04.12)
- トラ技2024年5月号に「3.3/65535」(2024.04.07)
「温度測定」カテゴリの記事
- コテ先温度を読みたいゾ う~む。(2024.05.24)
- ハンディ熱電温度計 AD-5602(2024.05.21)
- サーミスタでの温度測定、「inf」の出現に耐えられるか?(2024.05.13)
- 今日の修理:熱電温度計(2023.11.05)
- 120W電子負荷 予備実験#2 冷やすのはファンだ!(2023.10.10)
「1023 vs 1024」カテゴリの記事
- おっと。map関数の計算桁に注意(2024.10.06)
- サーミスタでの温度測定、「inf」の出現に耐えられるか?(2024.05.13)
- トラ技2024年5月号に「3.3/65535」(2024.04.07)
- ラズピコだと1/65535が出現(2024.03.30)
- Arduino UNO R4のDACサンプルに出てくるmap関数(2024.02.19)
「トランジスタ技術」カテゴリの記事
- トラ技2024年10月号に「加熱完了報知回路」(2024.09.08)
- 古いファイルを整理していたら・・・トラ技のGND記号(2024.07.30)
- 空中に飛び交う50Hz/60Hzを基準クロックに(2024.07.24)
- 気になる回答 トラ技1992年4月号での出題(2024.07.18)
- トラ技Jr.コーナ:はんだこて切り忘れ防止装置の製作(2024.07.05)
コメント