温度センサー(LM61CIZ)の使い方1
〔ADT7410〕
〔Arduinoの動かせ方入門に戻る〕
温度センサーを配線してArduinoIDEにシリアル通信を行い温度を表示させます。
使用するセンサーはLM61CIZを使用します、これは秋月通商のこちらで購入しました。 *1)
このセンサーは安くて測定範囲:−30℃〜100℃ と外気温測るのにぴったりなんですぅ。
@まずは、下記図画面の様に配線しましょう。
センサーはアナログの0番ピンに配線されています。
(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ボードに書込みを
行います。
D正常終了後、ArduinoIDEのシリアルモニターを起動して下さい、モニター画面に1秒置きに温度が
表示されます。
尚、シリアルモニターの使い方はこちらを参照下さい。
《やさしく解説》
LM61CIZについて
このセンサーは-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.