マイナスの温度も計測できるようにする。
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);
}
素敵なブログですねぇ。
C言語は分かりませんが、柔難取り混ぜた
話題のブログです。
「お気に入り」に追加しました。柔の時に時々遊びに来ますので宜しく
ぜひお立ち寄りください。