温度センサー(LM61CIZ)の使い方1

〔ADT7410〕 〔Arduinoの動かせ方入門に戻る〕



温度センサーを配線してArduinoIDEにシリアル通信を行い温度を表示させます。
使用するセンサーはLM61CIZを使用します、これは秋月通商のこちらで購入しました。 *1)
このセンサーは安くて測定範囲:−30℃〜100℃ と外気温測るのにぴったりなんですぅ。

@まずは、下記図画面の様に配線しましょう。
 センサーはアナログの0番ピンに配線されています。

Temp1
(Fritzing用のLM61CIZ部品ダウンロードはこちらからお願いします。)

Aarduinoボード(Arduino Duemilanove 328)はUSBケーブルで接続して、arduino IDEを起動させます。

BIDEに下記のスケッチプログラムをコピーペーストして貼り付けて下さい。
---------------------------------------------------------------------
void setup() {
     Serial.begin(9600) ;      // パソコン(ArduinoIDE)とシリアル通信の準備を行う
}
void loop() {
     int ans , temp , tv ;

     ans = analogRead(0) ;              // アナログ0番ピンからセンサー値を読込む
     tv  = map(ans,0,1023,0,5000) ;     // センサー値を電圧に変換する
     temp = map(tv,300,1600,-30,100) ;  // 電圧から温度に変換する
     Serial.println(temp) ;             // 値をパソコン(IDE)に送る
     delay(1000) ;                      // 1秒毎に繰り返す
}
---------------------------------------------------------------------
CIDEツールバーの赤枠部分「Upload」ボタンをクリックしてコンパイルとarduinoボードに書込みを
 行います。

upload

D正常終了後、ArduinoIDEのシリアルモニターを起動して下さい、モニター画面に1秒置きに温度が
 表示されます。
 尚、シリアルモニターの使い方はこちらを参照下さい。

《やさしく解説》

LM61CIZについて

Temp2  このセンサーは-30℃〜100℃を300mV〜1600mV(0℃=600mV)の範囲で
 出力し、1℃あたり10mV変化します。
 Arduinoは0V〜5Vを0〜1023に変換します、300mV〜1600mVなら61〜327です。

 左図画面は実行したシリアルモニターの画面です。
 22℃の中に23℃が表示されています、精度がいまいちですね。
 これはArduinoのA/D変換が0〜1023で行うのですが、
 入力が61〜327だからです。
 これを3倍の183〜981のレンジに広げてやれば精度が少し良くなるでしょう。
 3倍に増幅するのにオペアンプと抵抗を使えば出来ます。
 こちらにその記事を記載します、参照下さい。


スケッチについて

今回はpinModeは使いませんアナログは指定不要です、
アナログは入出力のピン位置は決まっていて、デジタルの様に入出力を兼用しませんから。

analogRead(pin)
 指定したピン(0番ピン)よりアナログ値(センサー値)を読み込みます。
 アナログ入力ピン(0−5番)には0〜5Vの電圧を入力します、
 arduinoはこの電圧を0〜1023の範囲に変換して読み取ります。

tv=map(ans,0,1023,0,5000)
 指定した数値(ans)をある範囲から別のある範囲にスケールを変換します。
 ansの数値を0−5000の範囲に変換してtvに返します。
 ansの数値は0−1023の範囲内で指定します。
 例えば、ans=327なら tv=1600 となります。


I2C接続の温度センサーADT7410を使った記事はこちらを参照下さい。



リンクの見直し(*1) 2020/03/19


【きむ茶工房ガレージハウス】
Copyright (C) 2006-2020 Shigehiro Kimura All Rights Reserved.