電子機器に不可欠な温度管理。運用時は冷却が重要なのに対し、修理・検査では温度高めの恒温試験をおこなうこともあります。

オーバーヒートを防ぐため温度スイッチやサーモスタットを利用するのが一般的ですが、使い勝手はイマイチ。そこで今回はMCUを使って温度管理を試みます。

 

まずMCU+温度センサー+LCDで温度計を作成します。LCDはI2Cものをチョイス、2線式なので配線もカンタンです。

温度センサーは、AD変換の勉強も兼ねてアナログ出力のLM35DZにしました。

LM35DZの最大の魅力は使いやすさ、外付けパーツ不要、電源をつなぐだけでOK。出力がリニアなのもありがたいところで、0℃は0V、1℃変わると電圧が0.01V変化するため計算が容易、アナログ回路にも適したセンサーです。

LM35DZ

 

使用するMCUには10bit(=1,024段階)のADコンバータに加え、基準電圧を発生する回路も標準装備。Outstandingすばらしい。

センサーが返す電圧をアナログ入力で受け止め、温度に変換し表示するだけ。カンタンですね。

・温度センサー: 0℃は0V、100℃なら1Vを出力

・ADコンバータ: 4.096V(=4,096mV)を基準、0Vは0、4.096Vのときは1,023を返す

10bitも4,096も2の累乗なのでカンタンと思っていましたが、4.096÷1,023=4.0039とキリの悪い数になってしまいました… MCUにガンバって計算してもらいましょう。

IMG_1718

 

温度のサンプリングは毎秒1回、10秒ごとに平均値を表示、設定温度を超えたら赤、未満なら青LEDを点灯させます。

LED

 

ただしこのままでは設定温度から0.1℃でも外れると異常と判定されるため、実用的とは呼べません。

そこでプラスマイナス2.5℃を許容範囲とし、超えたらLED点灯、設定温度に戻ったら消灯させることにしました。

オレすげェ風に書いてますが、なんのことはない、作動/復帰の2つの「しきい値」を持ったシュミット・トリガですね。

002-temp

 

とりあえず完成。これだけでは能がないので、20秒ごとに最高/最低温度を表示させることにしました。

IMG_1719

 

Butこのままでは昼夜LEDを監視し続ける「外のひと」が必要ですので、次回はファンとヒーターを制御できるようにします。

続きはWebで!

 

ムダに豪華な温度計度:★★★★★

I2Cのほうがラクだった度:★★★☆☆