Arduinoエントリーキットに付いてきた最後の部品、温度センサーを使ってみました。
温度センサーはLM35DZです。データシートは
こちら。
配線
回路図は以下のとおり単純なのですが、はまりました。
LM35のGNDと+Vsを逆にしていたため、測定した値がおかしくなりArduino自体が動かなくなってしまいました。。。
データシートのピン配置図をみていたのですが、
BOTTOM VIEWと書いてあるのを読み取れていませんでした。。。足の出ている方を上にしてみるんですね、BOTTOM VIEWですもんね。
この投稿をみてわかりました。
分かってみてから
LM35DZ 逆で検索すると、同じようなことがでてきました。
スケッチ
いろいろなサイトで同じスケッチがでているので割愛。ポイントは以下のとおり。
実際の室温と同じぐらいになっていました。
- アナログ入力は5Vを1024段階にする。
- LM35DZのVoutからは、10mV/℃で出力される。
精度を上げる
検索していたらこんなのを見つけました。
LM35HigherResolution
analogReference()は、アナログ入力の基準電圧を変える関数。デフォルトは5V。INTERNALを指定すると1.1Vになります。
基準電圧が5Vの場合は、
5V / 1024 = 0.00488
から、1単位あたり約4.9mVとなります。
これが基準電圧を1.1Vにすると、
1.1V / 1024 = 0.00107
なので、1単位あたり約1.1mVとなります。
上でも書いたようにLM35DZは10mV/℃で出力するので、5Vの場合は1単位あたり0.49℃、1.1Vの場合は1単位あたり0.11℃となり、より細かい温度を測定できます。
ただし、LM35DZは+2℃〜+150℃まで測れるとデータシートにありますが、1.1Vの場合のMaxは112.53℃に制限されます。
実際に試してみると、5Vの場合は27.83℃と28.32℃(差は0.49)をいったりきたりしたのに対して、1.1Vの場合には29.54℃と29.43℃(差は0.11)をいったりきたりしていました。それぞれはよさそうですが、比べると1℃近くも値が違います。なんでだろう?
これで
Arduinoエントリーキットに付いてきたひと通りの部品を試しました。
ここまでArduinoを触った感じでは、簡単な回路ものであれば容易にできそうです。本をひと通りやっていくだけでも楽しめました。
ただ、回路を組むのでわからなかったり、スケッチの問題ではなさそうというときは、はまってしまうorお手上げになってしまいそうだという感触。このあたりはいろいろやってみての経験なんだろうと思います。