Lab4

Button 按鈕開關

[材料]

Arduino主板 x 1

麵包板 x 1

Led x 1

按鈕開關 x 1

[Button接線方法]:

VCC --> arduino 5V

OUT --> arduino pin2

GND --> arduino GND


[LED接線方法]:請參考Lab1

/* Lab4  Button 程式碼 */

int led1 = 11;     //Led設定為pin 11
int button1 = 2;   //按鈕設定為pin 2 
int buttonState = 0;       //按鈕預設的狀態

void setup() {
  pinMode(led1, OUTPUT);       //設定led1為輸出訊號
  pinMode(button1, INPUT);     //設定button1為輸入訊號
}

void loop(){
  buttonState = digitalRead(button1);    //讀取按鈕的狀態

  if (buttonState == HIGH) { 
    digitalWrite(led1, HIGH);   //LED亮 
  } 
  else {
    digitalWrite(led1, LOW);    //LED暗
  }
}

[解釋]

1. pin1~13可以利用pinMode() 來設定INPUT或OUTPUT模式;

2. digitalRead() :數位輸入,"讀取"電壓狀態為 HIGH、 LOW 或是 1、0。

digitalWrite() :數位輸出,""寫入"電壓狀態為 HIGH、LOW 或是 1、0。

analogRead() :類比輸入,""讀取"電壓狀態為 0~1023的數值。

analogWrite() :類比輸出,""寫入"電壓狀態為 0~255的數值。

3. if 的用法:

if (條件1)
{ } 
else if (條件2) 
{ } 
else if (條件3) 
{ } 
.
.
.
else 
{ } 

[基本問題]

1. 請改寫程式,按下為關燈,放開為開燈。

2. 使用兩個按鈕,分別控制兩個LED。


[挑戰問題]

1. 原本程式是按住按紐時才會亮燈。
   請改寫程式:按了按鈕後放開,持續亮燈;再按一次後,燈又熄滅。
   ( 提示:可以加入一個變數,來記錄LED的狀態)