2006/06/18(日)MCS48 DS1822 高精度温度計完成

0度以下も測定可能

8048とDS18B20を使った温度計だけれども、0度以下の温度表示も対応してみた。なにせ、よく考えてみると、昔のZ80の頃にさえ真面目に数値演算処理なんてした事なかったので、符号付き二進演算について基礎知識が足りなかったのだ。そんな訳で苦労して作ったソースプログラムのテストで家の冷蔵庫の温度を測ってみたら、冷凍庫は-20度だったが、冷蔵庫内は9度だった。これではビールが飲み頃まで冷えないではないか。

この温度計は3桁なので温度によって表示パターンを変える仕組みになっている

100 - 127 チップが壊れそうだが

00.0 - 99.9 これは通常の表示

-0.1 - -9.9 これは0度以下。真冬にはこの程度も必要だろう

-10 - -99 -99度まで測定できるか不明だが。

そして、室温モニターとして温度の変化を音で知らせる。

  • 2/16 度以上高くなると ピッピッピッ
  • 2/16 度以上低くなると ピューン
  • そして 1度以上の変化の場合はそれぞれの音が3回続けて鳴る

室温の変化

部屋の温度の2/16度の変化って結構ありますね。窓を開けておくと、風がスーっと吹き抜けるだけで簡単に0.5度程度は部屋の温度が下がるし、DS18B20の近くに手をかざしただけで0.3度程度は測定値が高くなります。夜には電球のスタンドの光を当てただけでも変化が見られます。

放射冷却の実験にも

現在、28.8度を表示していますが、DS18B20にエチルアルコールを吹きかけると、24.5度程度まで一気に下がります。これは放射冷却を目のあたりにしたのではないでしょうか

DS18B20/DS1822

DS18B20もDS1822も同じモノなんでしょうか。データシートではDS18B20が誤差0.5度、DS1822が誤差2度となっていますが、どちらも、差し替えて見た所、誤差は同じようです。また最小分解能は1/16度ですが、この程度は測定する度にパタパタと変化を繰り返すので、このソフトウェアでは2/16度以上の変化で音は鳴らすようにしている。

ledtemp.lst

ledtemp.lst