2014年3月22日 星期六

[Arduino Starter Kit 06] Love-O-Meter TMP sensor 熱感應元件應用

image
Love-O-Meter 是一個感應體溫的裝置,隨著體溫的升高,LED 燈會逐漸亮起來。簡單的來說,Starter kit 認為這個可以測試對方看到你體溫會不會身高,升越高就越有愛拉

本篇利用到 TMP36 溫度感應元件,簡單的介紹可以看這篇 溫度感應器 Temperature Sensor - TMP35/36/37

Step 1. 準備材料:
紅色 LED x3
220 ohm 電阻 x3
TMP36 溫度感應器 x1

Step 2. 接線圖:
image
image

Step 3 原理與解說
Love - O - Meter 先用溫度感應器偵測周遭溫度,以室溫 20℃ 為基本,設定亮燈條件:
image

IDE sketch 如下:

// 定義 A0 pin 為 sensorPin,const 定義這個變數不可變更 (read-only)
const int sensorPin = A0;
// 定義室溫 20℃ 為基本比較溫度
const float baselineTemp = 20.0;

void setup(){
  // 開啟 serial connection 視窗,讓我們可以在電腦上看到 TMP36 讀取到的數據
  Serial.begin(9600);
  // 設定 Pin 2~4 為輸出模式,並且先不亮燈
  for(int pinNumber = 2; pinNumber<5; pinNumber++){
    pinMode(pinNumber,OUTPUT);
    digitalWrite(pinNumber, LOW);
  }
}

void loop(){
  // 讀取 A0 的訊號儲存到 sensorVal 這個變數中
  int sensorVal = analogRead(sensorPin);
  // 在電腦上顯示 sensorVal 的值,為 0~1023 間的數字,代表 0~5V 間的電壓
  Serial.print("sensor Value: ");
  Serial.print(sensorVal);
  // 將讀取訊號轉換成電壓 (0~5V)
  float voltage = map(sensorVal,0,1023,0,5)
  // 在電腦上顯示換算後的電壓值
  Serial.print(", Volts: ");
  Serial.print(voltage);
  // 將電壓轉換成溫度,公式解說可看這篇,溫度感應器 Temperature Sensor - TMP35/36/37
   Serial.print(", degrees C: ");
  float temperature = (voltage - .5) * 100;
  Serial.println(temperature);
  
 // 如果溫度低於 baseline 溫度 (20℃),關掉所有 LED
  if(temperature < baselineTemp){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  } // 如果高於 baseline 溫度 2~4℃,打開一顆 LED 
  else if(temperature >= baselineTemp+2 && temperature < baselineTemp+4){
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  } // 如果高於 baseline 溫度 4~6℃,打開兩顆 LED
  else if(temperature >= baselineTemp+4 && temperature < baselineTemp+6){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
  } // 如果高於 baseline 溫度 6℃,LED 全開
  else if(temperature >= baselineTemp+6){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }
  delay(1);
}

影片:
影片中可以看到我把手放到 sensor 上,sensor 感受到體溫的時候,LED 燈就會亮起來,手拿起來溫度下降的時候 LED 會熄燈。最後一個畫面可以看到電腦上監控的溫度。




photo credit: Ðeni (break) via photopin cc

沒有留言:

張貼留言

Anything That's Worth Chatting

Related Posts Plugin for WordPress, Blogger...