本格的にArduino > 温度センサー

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

温度センサー


LM61CIZ

http://akizukidenshi.com/catalog/g/gI-02726/
4つで200円の温度センサー。
■汎用の高精度IC温度センサーです
■測定範囲:−30℃〜100℃
■温度係数:+10mV/℃
■動作電圧範囲:+2.7〜+10V
■出力インピーダンス:800Ω
・Vo=(+10mV/℃×T℃)+600mV
     +100℃/+1600mV
      +85℃/+1450mV
      +25℃/+850mV
        0℃/+600mV
      −25℃/+350mV
      −30℃/+300mV 

単純な温度取得


imageプラグインエラー : ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。
int ledPin = 13;
int templPin = 5;

void setup() {
 analogReference(INTERNAL);
 Serial.begin(19200);
}

void loop()
{
 int val;
 double volt;
 double templ;
 val = analogRead(templPin); // 0-1023 / 1.1Vで1024になる
 volt = 1.1*val/1024.0;
 templ = (volt-0.6)*100.0; // 10mV=1c
 Serial.print(val);   Serial.print(" / ");
 Serial.print(volt);  Serial.print("V / ");
 Serial.print(templ); Serial.println("C");

 delay(1000);
}


複数回データを取得して平均する

int ledPin = 13;
int templPin = 5;

void setup() {
 analogReference(INTERNAL);
 Serial.begin(19200);
}

#define SAMPLING_COUNT 30
void loop()
{
 int val;
 int i;
 double volt;
 double templ;
 val = 0;
 for(i=0; i<SAMPLING_COUNT; i++){
   val += analogRead(templPin);
   delay(10);
 }
 val = val/SAMPLING_COUNT;
 volt = 1.1*val/1024.0;
 templ = (volt-0.6)*100.0; // 10mV=1c
 Serial.print(val);   Serial.print(" / ");
 Serial.print(volt);  Serial.print("V / ");
 Serial.print(templ); Serial.println("C");

 delay(700);
}
ブレが小さくなる。


LM35DZ

http://akizukidenshi.com/catalog/g/gI-00116/
高精度IC温度センサ LM35DZ 0〜100℃
[LM35DZ]
通販コード I-00116
発売日 2001/12/12
メーカー NATIONAL SEMICONDUCTOR
摂氏(℃)に比例した電圧出力
◎例:
 0℃→0V
 20℃→200mV
◆測定温度範囲:0〜100℃
◆精度:±1℃
◆温度係数:10.0mV/℃
◆電源電圧:DC4V〜20V 低消費電流:60μA
◆低出力インピーダンス:0.1Ω
◆T0-92パッケージ

ピン配置はLM61CIZと同じだが出力全圧が違う。




LM61CIZ vs LM35DZ

void setup() {
 analogReference(INTERNAL);
 Serial.begin(115200);
}

void task_LM61CIZ()
{
 static int pin     = 5;
 static int sum     = 0;
 static int samples = 0;
 double volt;
 double templ;

 sum     += analogRead(pin);
 samples += 1;

 if(30<samples){
   volt = 1.1*sum/samples/1024.0;
   templ = (volt-0.6)*100.0; // 10mV=1c
   Serial.print("LM61CIZ: ");
   Serial.print(sum);   
   Serial.print(" / ");
   Serial.print(volt);  
   Serial.print("V / ");
   Serial.print(templ); 
   Serial.println("C");
   sum     = 0;
   samples = 0;
 }
}

void task_LM35DZ()
{
 static int pin     = 4;
 static int sum     = 0;
 static int samples = 0;
 double volt;
 double templ;

 sum     += analogRead(pin);
 samples += 1;

 if(30<samples){
   volt = 1.1*sum/samples/1024.0;
   templ = volt*100.0; // 10mV=1c
   Serial.print("LM35DZ : ");
   Serial.print(sum);   
   Serial.print(" / ");
   Serial.print(volt);  
   Serial.print("V / ");
   Serial.print(templ); 
   Serial.println("C");
   sum     = 0;
   samples = 0;
 }
}

void loop()
{
 task_LM61CIZ();
 task_LM35DZ();
 delay(100);
}

LM61CIZ: 27723 / 0.96V / 36.07C
LM35DZ : 10155 / 0.35V / 35.19C
LM61CIZ: 27722 / 0.96V / 36.06C
LM35DZ : 10156 / 0.35V / 35.19C
LM61CIZ: 27721 / 0.96V / 36.06C
LM35DZ : 10153 / 0.35V / 35.18C
LM61CIZ: 27728 / 0.96V / 36.08C
LM35DZ : 10158 / 0.35V / 35.20C
LM61CIZ: 27721 / 0.96V / 36.06C
LM35DZ : 10148 / 0.35V / 35.17C
LM61CIZ: 27724 / 0.96V / 36.07C
LM35DZ : 10155 / 0.35V / 35.19C
LM61CIZ: 27726 / 0.96V / 36.08C
LM35DZ : 10161 / 0.35V / 35.21C







参考URL
最終更新:2010年07月24日 14:02
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。