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

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

Arduino で温度を計る(3)

2010-12-23 | Arduino

マイナスの温度も計測できるようにする。

LM35DZをセンサーとして使用した場合の温度測定範囲は0℃から+100℃でした。
当地盛岡では冬期間の外気温度は当然氷点下になりますので、このまヽでは気温の測定には使えないことになります。
そこでマイナスの気温でも測定が可能なようにセンサーをLM61CIZに取り替えて実測してみました。
LM61CIZの測定範囲は-30℃から+100℃とになり、0℃のときの出力電圧は600mvになります。つまり600mvのオフセットがかかっていることになります。
そのことにより、単電源でマイナス温度まで計れることになります。

スケッチの変更は温度に変換する計算式が変わります。

  temp2 = (((V / 1024) * Value2) * 100) -60

 

早朝の外気温が氷点下の時に実測した写真です。temp1の表示はセンサーがLM35DZで測定範囲を超えていますので、ゼロになり、temp2はLM61CIZですのでマイナスの温度が表示されています。

変更したスケッチ(赤字の部分が変更箇所)

//マイナスの温度を測れるようにセンサーを変更

#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)-60 ;
 
  //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);
}

 

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