今から始める電子工作 Step4 ① 温度センサ LM35失敗
常温付近の温度を測る温度センサはたくさんあります。サーミスタが一番安価なので産業界ではよくつかわれます。今まで利用してきたI2Cバス用の温度センサは高額です。
使い方が簡単なのがLM35と呼ばれる温度センサです。CPUなどの温度を測るには、トランジスタが使われていますが、トランジスタ1個だけでは、温度と電圧の関係が複雑です。
このセンサ、とてもわかりやすいのです。次の写真のように5Vの電源をつないで、センサの出力をテスタで測ります。
約196mVです。これは19.6℃のことです。25℃なら250mVという電圧が出力されます。0℃のとき0Vで、1℃あたり10mVの電圧が発生します。零下を測りたいときには、マイナス電源が必要です。
●環境
- Arduino IDE;2.3.5
- Windows11;24H2
- Arduino UNO R4 WiFi
●接続
LM35の外観はトランジスタと同じTO-92 です。
アナログ入力端子はA0につなぎます。
●スケッチ
5V端子はテスタで測りました。4.08Vです。
void setup() { Serial.begin(9600); delay(1000); analogReadResolution(14); } void loop() { int analogData = analogRead(A0); float voltage = analogData * (4.08 / 16384.0); Serial.print(voltage *100.0);Serial.println("'C"); delay(3000); }
実行結果です。 室温は25~27℃なので、そうとう高めの値が出ています。
●Arduino UNO R3を使う
同じ条件で、LM35をArduino UNO R3につないで測定しました。こちらは、妥当な温度を表示しています。
Arduino UNO R4 WiFiで、DC12Vの外部電源を使って5V端子を約5Vに上げても結果は変わりませんでした。
また、OPアンプをバッファにし、A3端子を測定しましたが、同様に高めでした。
原因は不明です。
確認のために、A0に基準電源発生器で100mVを入力すると、99.5~100.7mVでしたので、A-Dコンバータは正常に働いていることがわかりました。