Arduino 快速入門-5 使用按鈕控制LED

在這篇文章中,我們將學習如何使用按鈕來控制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),執行這段程式碼
}

課後練習

下一篇:


分類:

作者:

標籤: