2015年12月27日 星期日

aruino-LM35溫度感測器

之前介紹過紅綠燈的模擬,現在額外再加上一顆LM35的溫度感測器,就可以做出一台簡易的溫度顯示器,當溫度小於20度時就顯示黃燈,溫度介在20~25度就顯示綠燈,溫度大於25度就顯示紅燈。

詳細的電路圖可以參考:
http://pic.pimg.tw/o4043380/1408703066-754388975_n.png?v=1408703068 

程式碼如下:
  #define LM35 A1 // 定義LM35 為模擬引腳A1
int ledb =5; //  定義LED藍 腳位5
int ledg =4; //  定義LED綠 腳位4
int ledr =3; //  定義LED紅 腳位3

int val =0; //  將LM350值設為0
float temp = 0; // 將溫度浮動值設為0


void setup(){
pinMode(ledb,OUTPUT); // 定義LED為輸出腳
pinMode(ledg,OUTPUT); // 定義LED為輸出腳
pinMode(ledr,OUTPUT); // 定義LED為輸出腳
Serial.begin(9600); // 設定監控視窗傳輸速度
}
void loop(){
val = analogRead(LM35); // 感值來源為LM35所測的值
temp = (125*val)>>8; //溫度計算公式 125/2^8 = 125/256=0.4882812
Serial.print("Tep="); // 監控視窗句子前添加'Tep'
Serial.print(temp); // 在監控視窗裡顯示"temp"的值
Serial.println(" C"); //  在監視窗家裡 加上單位
delay(150); //  延遲0.15秒

if (temp<20) // 假設溫度小於25  則執行下列式
{
digitalWrite(ledb, 1);
digitalWrite(ledr, 0);
digitalWrite(ledg, 0);
}

else if (temp<25) // 則假設溫度小於35  則執行下列式
{
digitalWrite(ledg, 1);
digitalWrite(ledb, 0);
digitalWrite(ledr, 0);
}
else if(temp>25) // 則假設溫度大於35  則執行下列式
{
digitalWrite(ledr, 1);
digitalWrite(ledg, 0);
digitalWrite(ledb, 0);
}
}
以下是測試溫度感測器的影片


沒有留言:

張貼留言