在這篇文章中,我們將學習如何使用按鈕來控制LED的開關。這是一個經典且實用的 Arduino 項目,可以幫助你進一步理解數位輸入和輸出的基本概念。
必要元件
在開始之前,確保你擁有以下幾樣必要的元件:
- 輕觸開關
- 電阻(1個220歐姆或330歐姆電阻,1個10k歐姆電阻)
- LED
- 面包板、跳線
接線圖、電路圖

R2為下拉電阻,在SW1未接通時,將PIN 2下拉至0V(GND),避免開關漏電、環境干擾等因素,導致PIN 2誤動作。

程式碼
現在,我們將編寫一個Arduino程式來實現按鈕控制LED。打開Arduino IDE,輸入以下程式碼並上傳:
// 定義按鈕和LED的引腳
int buttonPin = 2; // 按鈕連接到引腳2
int ledPin = 13; // LED連接到引腳13
// 儲存按鈕狀態的變量
int buttonState = 0; // 0=滅 1=亮
void setup() {
// 將LED引腳設定為輸出
pinMode(ledPin, OUTPUT);
// 將按鈕引腳設定為輸入
pinMode(buttonPin, INPUT);
}
void loop() {
// 讀取按鈕的狀態並寫入buttonState變量
buttonState = digitalRead(buttonPin);
// 根據按鈕狀態控制LED
// 條件:buttonState等於HIGH,也就是已按下按鈕
if (buttonState == HIGH) {
// 若按鈕被按下,點亮LED
digitalWrite(ledPin, HIGH);
} else {
// 若按鈕未被按下,關閉LED
digitalWrite(ledPin, LOW);
}
}
此時,按下按鈕LED亮,放開LED滅。

程式介紹
int 變量:
int 是一種數據類型,用於表示整數。它可以存儲不帶小數的正數、負數和零。
在 Arduino 中,int 類型佔用兩個字節(16位元)的內存空間,這意味著它可以存儲的值範圍為 -32,768 到 32,767。
在本次教學的程式中,因為會多次使用到PIN 13,所以我們聲明一個名為ledPin的int變量,且賦值為13,並在所需的函數中填入”ledPin”。
這樣的好處是,若LED改成其他引腳(例如PIN 12),只需將ledPin變量賦值為12,無須一個一個函數做修改。
// 範例
int ledPin = 13; // 聲明一個名為ledPin的int變量,且賦值為13
// 儲存按鈕狀態的變量
int buttonState = 0; // 0=滅 1=亮
digitalRead()函數:
從指定的數位引腳讀取值,HIGH(1)或LOW(0)。
digitalRead(pin); //pin:您要讀取的Arduino引腳號
// 範例
// 讀取按鈕的狀態並寫入buttonState變量
buttonState = digitalRead(buttonPin);
if判斷式:
if語句
檢查“條件”,如果條件成立,則執行大括號內的語句或語句集
if (條件) {
// 如果條件為真(true),執行這段程式碼
}
if-else 語句
有時候,你需要在條件為假(不成立)時執行另一段程式碼,可以使用if-else 語句:
if (條件) {
// 如果條件為真(true),執行這段程式碼
} else {
// 如果條件為假(false),執行這段程式碼
}
// 範例
// 條件:buttonState等於HIGH,也就是已按下按鈕
if (buttonState == HIGH) {
// 若按鈕被按下,點亮LED
digitalWrite(ledPin, HIGH);
} else {
// 若按鈕未被按下,關閉LED
digitalWrite(ledPin, LOW);
}
if-else if-else 語句
如果你有多個條件需要檢查,可以使用if-else if-else 語句:
if (條件1) {
// 如果條件1為真(true),執行這段程式碼
} else if (條件2) {
// 如果條件2為真(true),執行這段程式碼
} else {
// 如果所有條件都為假(false),執行這段程式碼
}