Arduinoで温度を測る
前回で完成したLCDパネルを利用して温度を測り表示してみた。
温度センサはIC温度センサのLM35を使います。
LM35DZは出力が摂氏温度に比例しており、温度係数はリニアで +10.0mv/℃です。
o℃で0v、10℃で100mv、20℃で200mvの出力があり、+25℃で0.5℃の精度があります。
一方Arduinoのアナログ入力は 0~5vの電圧を1024段階で読み取りますので、これを
0~500℃のスケールで温度として使用できることになりますが、実際動作範囲は0~100℃になります。
センサーの読み取り値の温度への換算
温度(℃)=((5/1024)*温度センサの読み取り値)*100
今回は温度センサを2個使い、一方では計測した温度を50回積算しその平均を算出してLCDに表示し、
もう一方は1回の計測値をそのまま表示しております。
50回の平均値を表示 TEMP1
1回の計測値を表示 TEMP2
温度を測るスケッチ
//温度を測る temp3
#include <LiquidCrystal.h>
//センサーに接続したアナログピンの番号
float sensor1Pin = 0;
float sensor2Pin = 1;
//変数の定義
float v = 5;
float temp1 = 0;
float temp2 = 0;
float value1 = 0;
float value2 = 0;
int sum = 0;
int data = 0;
//LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
//LCDの桁数と行数をセットする
lcd.begin(16, 2);
}
void loop() {
//LCDの表示をクリアする
lcd.clear();
//センサーピン1の温度センサーの値を読み取る
//センサーの値を50回読み取り平均化する
sum = 0;
for (int i = 0; i < 50; i++) {
data = analogRead(sensor1Pin);
sum = sum + data;
delay(2);
}
value1 = sum / 50;
//センサーピン2の値を読み取る
value2 = analogRead(sensor2Pin);
//読み取った値を温度に換算
temp1 = ((v / 1024) * value1) * 100 ;
temp2 = ((v / 1024) * value2) * 100 ;
//LCDに温度を表示する
lcd.print("temp1: ");
lcd.print(temp1);
lcd.setCursor(11, 0);
lcd.write(0xDF);
lcd.print("c ");
lcd.setCursor(0, 1);
lcd.print("temp2: ");
lcd.print(temp2);
lcd.setCursor(11, 1);
lcd.write(0xDF);
lcd.print("c ");
//次のループまで1秒待つ
delay(1000);
}
LM35DZ
LM35DZには3本の足がありそれぞれ +5v、Vout、GNDに接続します。
実際に動作している時に指でつまむと、表示値が変化しますので動作の確認ができます。
ボードの配線
このページを、私のWebにリンクさせたいのですが、よろしいでしょうか?
お忙しいところ申し訳ないですが、返信くださると幸いです。