2015年5月25日 星期一

課程17-溫控水杯

目的:

使用Arduino 偵測LM35溫度感測,並使用LED燈號來顯示溫度燈號。

電子元件:

麵包板 x 1
Arduino 主板 x 1
LM35IC x 1
LED黃 x 1
LED紅 x 1
LED綠 x 1

電路圖:


程式碼:


  1. const int LED_red = 11;
  2. const int LED_yellow = 12;
  3. const int LED_gree = 13;
  4. const int LM35 = 0;
  5. void setup() {
  6.  pinMode(LED_gree, OUTPUT);
  7.  pinMode(LED_yellow, OUTPUT);
  8.  pinMode(LED_red, OUTPUT);
  9. }
  10. void loop() {
  11.  int vol = analogRead(LM35) * (5.0 / 1023.0*100);
  12.  if (vol<=31){
  13.    digitalWrite(LED_gree, HIGH);
  14.    digitalWrite(LED_yellow, LOW);
  15.    digitalWrite(LED_red, LOW);
  16.  }else if (vol>=32 && vol<=40){
  17.   digitalWrite(LED_gree, LOW);
  18.   digitalWrite(LED_yellow, HIGH);
  19.   digitalWrite(LED_red, LOW);
  20.  }else if (vol>=41){
  21.   digitalWrite(LED_gree, LOW);
  22.   digitalWrite(LED_yellow, LOW);
  23.   digitalWrite(LED_red, HIGH);
  24.  }
  25. }

程式說明:

第一行~第四行 宣告LED_red、LED_yellow、LED_gree、LM35腳位分別為Pin11、Pin12 、Pin13、Pin0(A0)。
第五行~第九行 宣告LED_red、LED_yellow、LED_gree為輸出腳位。
第十行~第二十五行 為主程式
第十一行 讀取LM35溫度感測器數值並且運算(5.0 / 1023.0*100)出百分比再傳給vol整數變數。
第十二行~第十六行 使用IF判斷式查看val 是否小於31,如果是執行下面三行程式。
第十三行 把LED_gree輸出高電位,亮起綠燈。
第十四行 把LED_yellow輸出低電位,關閉黃燈。
第十五行 把LED_red輸出低電位,關閉紅燈。
第十六行~第二十行 延續上一個IF 判斷val 在32至40區間,如果是執行下面三行程式。
第十七行 把LED_gree輸出低電位,關閉綠燈。
第十八行 把LED_yellow輸出高電位,亮起黃燈。
第十九行 把LED_red輸出低電位,關閉紅燈。
第二十行~第二十四行 延續上一個IF 判斷val 大於 40,如果是執行下面三行程式。
第十七行 把LED_gree輸出低電位,關閉綠燈。
第十八行 把LED_yellow輸出低電位,關閉黃燈。
第十九行 把LED_red輸出高電位,亮起紅燈。

實驗影片:

沒有留言:

張貼留言

Arduino、Raspberry Pi、System Integration,如有問題或建議,可以互相討論喔~