秋月通商などで手に入る安価な温度センサーに
LM35DZというものがあります。
これをArduinoと組み合わせて使う記事は検索するといくつも出てくるのですが、ほとんど「コピペ」で有用な追加情報はほとんど得られない状況です。
そこで、いくつか実験も兼ねてテストしてみようと思います。
以下は実験風景です。
多くの記事は基準となる温度計などとの測定値の比較をして検証を行うなどの基本的なことが行われていません。
また、データシートの読み込みが足りなかったりADCからの取得値のデータ処理の仕方の根拠説明がありません。
今回の実験では比較のために他の温度センサーでの観測値と市販のデジタル温度計の測定値を使います。
「他の温度センサー」としてはセンサーそのものがデジタル値を返すセンシリオンのSHT-11を使いました。これはADCによる変換処理の仕方の影響を排除するためです。
■動作電圧
LM35DZに印加する電圧範囲は広く、4V〜20Vとなっています。
実験風景でオレンジ色はArduinoの5Vに接続しており、赤色は3.3Vに接続しているのですが、実は実験の結果、3.3Vで十分に動作することが分かったため、3.3Vで動作させることにしました。
■ADC基準電圧
ArduinoのデフォルトのADC基準電圧は5Vです。
一方でLM35DZを追加部品なしに使う場合は氷点下の測定はできず、10mV/℃という特性なので100℃の場合は1000mV、つまり1Vの電圧程度しか測る必要はないでしょう。このようなセンサーをADCで使う場合は基準電圧を下げるかアンプなどで増幅するなどしてフルスケールと基準電圧が近くなるようにします。
Arduinoはデフォルトの設定以外にもINTERNALという指定をすることにより機種ごとの異なる電圧をADCの基準電圧として使うことができます。
Arduino UNOの場合はその電圧は1.1Vです。
今回は1.1Vを基準電圧に設定します。
なお、通常の5Vが基準電圧の場合、生活環境での室温は明らかに他のセンサーの測定値よりも小さい値となりましたので、実用にならないことを確認しています。
スケッチは以下になります。
デフォルトと1.1Vの設定処理はマクロで切り替えるようにしていますのでどれ位値が変わるかは試してみると分かります。
■ADC基準電圧とプログラムの対応付け
5Vの基準電圧とか3.3Vの基準電圧とか1.1Vの基準電圧とかいろいろありますが、本当にそれらの電圧が基準電圧として正しいのでしょうか?
5Vのつもりが5.01Vであったり、4.98Vであったりします。
当然プログラム上はそれに合わせて実測値を採用しないと変換処理の誤差となります。
今回はそこまで実行していませんし、1.1Vの基準電圧の場合は外部から正確に測ることもできませんから、理論値として処理するしかありません。
セコメントをする