arduinoでつくる 低温調理器具 3/全7回

前回はLEDライトを点滅させることに成功しました。今回は温度センサー(LM35DZ)を使って、arduinoで"水中での"温度測定ができるようにします。製作目標としている低温調理器具は水温を調節する機器なので、周辺温度ではなく水温を直接測定したいからです。

前回に加えての必要部品

方法

今回はこちらのサイトを参考にしました。

 

温度センサーが使えるか確かめる

まず、購入した部品が動作しているかチェックします。こちらのサイトに従って、温度センサーとarduinoを組み上げてください。

センサーを指で握って温めた時に、温度表示も連動して上昇すれば、温度センサーはきちんと動作しています。

温度センサーを防水する

今回は、温度センサーを水中に入れることを想定しています。なので、ビニールテープとエポキシ樹脂接着剤で防水しました。

まず、温度センサーの足とリード線を半田付けします。温度センサーの足は3本あるので、ショートしないように注意です。

次に、接着面を上にしておいた3cm程度のビニールテープの上にセンサーを置き、エポキシ樹脂をセンサーの足にかけてからぐるぐる巻きにします。完成品は次のようになります。

f:id:RyoSaitoOp3:20150906162637j:plain

エポキシ樹脂のつきにくい素材の上で行わないと、センサーが机などに固定されてしまうので注意してください。

温度センサーをキャリブレーションする

 センサーがきちんと防水できているか、正しい温度を測定できているかをチェックしました。お湯を張ったコップにセンサーと温度計を入れ、水を足しながら4点程度の温度を測定しました。

f:id:RyoSaitoOp3:20150906162515j:plain

ちなみに、防水がうまくいっていないと、回路がショートし、温度の測定値が大きくふらついたり、常温なのに100℃を越えたりします。そのときは、乾かした上でさらにエポキシとビニールテープで巻くか、あるいは温度センサーを作り直すといいでしょう。

今回は問題なく防水されており、結果は次のようになりました。

f:id:RyoSaitoOp3:20150906160509p:plain

画像の通り、高温域では約14℃の誤差が生じていました。これでは使い物にならないので、温度計の値とLM35DZの値が一致するように、analog inputを温度に変換する式の係数を変更します。

(水温)= a *(LM35DZのanalog_input)+b

とするとき、

a = {(温度計の最高温度) - (温度計の最低温度)}/{(LM35DZの最高値) - (LM35DZの最低値)}

b = (温度計の最低値)-(LM35DZの最低値) * a

 となります。今回は、

a = (92-5) / (160-11)

   = 0.58388

b = 5 - 11*0.58388

   = -1.42141

 となりました。

コードの温度算出の部分を次のように変更すれば、LM35DZで正しい温度が測れるようになります。

temp_c = (a_in * 0.58388) - 1.42141;