トラ技2026年6月号 サーミスタの温度測定で
トランジスタ技術2026年6月号 の特集記事第1章
MATLAB解析IoTクラウド!暑さ指数測定器の製作
ラズパイPico 2 Wで屋外ワイヤレス百葉箱!
おすすめクラウドThingSpeak!
この記事を見ていて・・・なぜそう書くのか?
という疑問。
大もとはラズパイPico2Wを使った温度測定回路。
電源側にサーミスタを入れて抵抗値を計り、
温度計算しています。
MycroPythoでプログラムされているんですが、
・ゼロ除算はダメ
・ゼロの対数もダメ
なのはいっしょ。
温度を求めているところ、
「スタインハート・ハート(Steinhart-Hart)方程式」
を使っているとのこと。
(a) まず、1/1023が出てきます。
…なんども言ってるんですがねぇ
ここで得られるvoltage値、サーミスタが
オープンだと0.0V。 短絡だと電源電圧の3.3V。
(b) サーミスタの抵抗値を算出してる式。
短絡=3.3VだとゼロΩ。
オープンだと「ゼロ除算!」 …あかんがな
(c) 対数変換
短絡=ゼロΩでは未定義。 …あかんがな
簡単にはA/D値としてゼロとフルスケールをチェック
するだけ。
短絡とオープンを検出したら異常表示しても良いし、
オープン:最低温度 短絡:最高温度
と処理してもかまわないでしょ。
ゼロ除算と関数の未定義処理だけは避けるべきです。
こんなプログラムを見せられるのはイヤです。
サーミスタでの温度測定、過去にもウダウダ言ってます。
・2024年5月13日:サーミスタでの温度測定、「inf」の出現に耐えられるか?
・2024年3月30日:ラズピコだと1/65535が出現
・2023年3月21日:A/Dコンバータでサーミスタの抵抗値を読む サーミスタをつなぐ場所は?
・2023年3月23日:Arduino サーミスタを使った温度測定で 【ゼロ除算問題】
サーミスタじゃないけど、こんなバグにも遭遇。
・2021年12月7日:湿度センサー「DHT11」がやってきた・・・けど!?
他人が作ったもの、うかつに信じゃちゃダメよという教訓。
教科書的書籍でもスカタンがあるんで。

















最近のコメント