下手の横好きのスクラップブック!!

下手の横好きの、いろいろな記録です。
電子工作・PIC・Arduino・太陽光発電・写真などetc

Arduinoで温度を測る

2010-12-12 | Arduino

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に接続します。
実際に動作している時に指でつまむと、表示値が変化しますので動作の確認ができます。

ボードの配線

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする