【Arduino入門教學】按鈕與開關

更新 發佈閱讀 7 分鐘

1.簡介

我們將學習如何使用 Arduino 和按鈕、開關來控制 LED 燈發亮與熄滅的狀態,幫助你理解數位輸入與輸出的概念:

開關(Toggle Switch):開關則是一種永久開關,當你切換到開的位置時,電路會保持閉合狀態,直到切換回關閉的位置,生活中常見的例子為:天花板開燈與關燈的應用、各類電器的電源。

raw-image


raw-image

按鈕(Push Button):按鈕是一種臨時開關,當你按下時電路閉合,放開時電路斷開。這在電子項目中非常常見,用於觸發某些裝置行為,例如:馬達的轉動開關瞬間

raw-image
raw-image

Arduino 當中數位輸入與輸出:數位腳位可以設置為輸入或輸出模式。當設置為輸入時,可以讀取按鈕或開關的狀態,設置為輸出時,可以控制 LED 燈的開啟或關閉。

2.材料介紹與準備

  1. Arduino uno*1:電路程式控制的主要控制元件,點我購買
  2. 麵包板*1:置放電子元件的底座,點我購買
  3. 5mm LED燈*1:發光元件,點我購買
  4. 220Ω電阻*1:限制電流值,避免電子元件過載燒壞,點我購買
  5. 杜邦線 公公_10cm*2:快速連接電子元件的電路,點我購買
  6. 輕觸按鈕*1:控制電路通路與斷路、提供輸入訊號,點我購買
  7. 船型開關*1:接通與關閉電路,點我購買

3.範例1

先以不寫程式的狀況下,製作一個簡單的開關電路,當按下按鍵時,形成通路,電流從Arduino Uno的5V端流過LED,然後通過按鍵回到GND,形成一個完整的迴路,LED因此亮起,電路連接如下:

raw-image

4.範例2

接著我們試著利用程式去偵測按鍵是否按下的方式控制LED燈亮滅,使用PIN 4來監控按鍵的狀態,而PIN 3則用來控制LED的開關。

在這個電路中,當Pin腳並未連接到任何電路時,會導致Pin腳進入一種稱為"Floating"(懸空)狀態,在讀取時可能會因為周圍的電磁噪聲而不穩定,造成時而讀取到HIGH(高電位)或LOW(低電位)。

為了解決這個懸空問題,我們會接上一個電阻220Ω,確保在按鍵未被按下的情況下,Pin腳的狀態能穩定在高電位。,這樣的設置有效地提高電路的穩定性與可靠性,根據接入的方式不同,可以分為:

  • l   Pull-Up(上拉電阻):指電阻連接至VCC電源(正電源),通常是較為普遍的做法
  • l   Pull-Down(下拉電阻):指電阻連接至地線(GND)

電路連接方式:

raw-image

程式說明:

int BUTTON = 4;      //定義按鈕連接的接腳為4
int LED =3;          //定義LED燈連接的接腳為3
int buttonState = 0;   //儲存按鈕的初始化狀態

void setup() {
  pinMode(LED, OUTPUT);    //設定LED引腳為輸出模式
  pinMode(BUTTON, INPUT);  //設定按鈕引腳為輸入模式,讀取按鈕的狀態
}

void loop() {
  buttonState = digitalRead(BUTTON); //讀取按鈕的狀態,並將其儲存到 buttonState 變數中
  if(buttonState == LOW){            //檢查按鈕是否被按下(按下時狀態為LOW)
    digitalWrite(LED, HIGH);         //LED發亮
  }else{                             //如果按鈕沒有被按下的情況
    digitalWrite(LED_PIN, LOW);      //LED熄滅
  }
}

注意:我們是選擇用Pull-Up(上拉電阻),所以按鍵的狀態在未按下時,會讀取到HIGH按下了才會讀到LOW

5.範例3

其實在Arduino Uno板上的每個引腳都有內建約20K歐姆的上拉電阻,我們可以直接利用內建的電阻來實現按鍵的功能,而不需要額外添加外部電阻。

如果我們想使用這個內建的上拉電阻,只需在程式中在設定按鍵引腳時,將其設為INPUT_PULLUP模式,這樣當按鍵未被按下時,引腳會自動讀取到HIGH狀態,而按下按鍵時則會讀取到LOW狀態。

這樣的做法不僅簡化了電路設計,還減少了元件的使用,讓我們的Arduino專案更加簡潔和方便

電路連接方式:

raw-image

程式說明:

int BUTTON = 4;      //定義按鈕連接的接腳為4
int LED =3;          //定義LED燈連接的接腳為3
int buttonState = 0;   //儲存按鈕的初始化狀態

void setup() {
  pinMode(LED, OUTPUT);    //設定LED引腳為輸出模式
  pinMode(BUTTON, INPUT_PULLUP);  //設定按鈕引腳為輸入模式,讀取按鈕的狀態
}

void loop() {
  buttonState = digitalRead(BUTTON); //讀取按鈕的狀態,並將其儲存到 buttonState 變數中
  if(buttonState == LOW){            //檢查按鈕是否被按下(按下時狀態為LOW)
    digitalWrite(LED, HIGH);         //LED發亮
  }else{                             //如果按鈕沒有被按下的情況
    digitalWrite(LED_PIN, LOW);      //LED熄滅
  }
}

我們將引腳的模式從普通的INPUT改成了INPUT_PULLUP,這樣告訴Arduino Uno板,這個引腳不僅用作輸入,還要啟用內建的上拉電阻。

pinMode(BUTTON_PIN, INPUT_PULLUP);

要特別注意,就是Pin 13的引腳,已經接了一顆LED和電阻,因此不適合使用INPUT_PULLUP模式,使用這個引腳可能會影響LED的正常操作!

大家也來練習操作看看吧~

留言
avatar-img
魔方科技的沙龍
1會員
11內容數
魔方科技的沙龍的其他內容
2025/02/16
這篇文章介紹如何使用Arduino控制多顆LED燈,包含電路設計、元件介紹、程式撰寫等步驟,並提供詳細的圖解說明。學習如何計算LED電阻值,避免LED燒毀,以及如何使用麵包板、杜邦線等電子元件。
Thumbnail
2025/02/16
這篇文章介紹如何使用Arduino控制多顆LED燈,包含電路設計、元件介紹、程式撰寫等步驟,並提供詳細的圖解說明。學習如何計算LED電阻值,避免LED燒毀,以及如何使用麵包板、杜邦線等電子元件。
Thumbnail
2025/02/01
這篇文章提供Arduino IDE的下載安裝教學、使用環境介紹、程式撰寫入門以及LED燈閃爍程式的實作。讀者將學會如何下載並安裝Arduino IDE,熟悉其開發環境,撰寫簡單的Arduino程式,並將程式上傳至Arduino開發板,最終點亮LED燈。
Thumbnail
2025/02/01
這篇文章提供Arduino IDE的下載安裝教學、使用環境介紹、程式撰寫入門以及LED燈閃爍程式的實作。讀者將學會如何下載並安裝Arduino IDE,熟悉其開發環境,撰寫簡單的Arduino程式,並將程式上傳至Arduino開發板,最終點亮LED燈。
Thumbnail
2025/01/30
Arduino 是一款易於使用的開放原始碼微控制器開發板,具有價格低廉、相容性高、學習簡單等優點,適用於各種應用程式,例如紙機器人等。本文介紹 Arduino 的基本概念、優點、常見的控制板種類、軟體編譯環境以及應用範例。
Thumbnail
2025/01/30
Arduino 是一款易於使用的開放原始碼微控制器開發板,具有價格低廉、相容性高、學習簡單等優點,適用於各種應用程式,例如紙機器人等。本文介紹 Arduino 的基本概念、優點、常見的控制板種類、軟體編譯環境以及應用範例。
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
創業者常因資金困境而無法抓住機會,利用房產活化讓二胎房貸成為財務策略的有力夥伴。 諮詢國峯厝好貸的二胎房貸服務,讓你的房子成為你最強力的天使投資人,推動事業成長。
Thumbnail
創業者常因資金困境而無法抓住機會,利用房產活化讓二胎房貸成為財務策略的有力夥伴。 諮詢國峯厝好貸的二胎房貸服務,讓你的房子成為你最強力的天使投資人,推動事業成長。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
實際上為了製作斷路開關(老外叫做Adapter Kill Switch Door)以及腳踢線(Kick harness),中間找工具/端子&針腳針腳規格/線徑大小...花了一段時間,因為我從來就沒有接觸過此類手工技術的經驗,當初傻傻地拿著框體上的端子跑去光華商場的電子街想要照規格買沒
Thumbnail
實際上為了製作斷路開關(老外叫做Adapter Kill Switch Door)以及腳踢線(Kick harness),中間找工具/端子&針腳針腳規格/線徑大小...花了一段時間,因為我從來就沒有接觸過此類手工技術的經驗,當初傻傻地拿著框體上的端子跑去光華商場的電子街想要照規格買沒
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
在設計表單的時候有幾種不同的元件,可以用來加快填寫表單的速度。而在這些元件中比較常見的 Checkbox 與 Toggle Switch 常常會讓我覺得有點像又有點不像,在製作表單的時候會有點不太確定在什麼情境下分別使用這兩種元件。在搜集資料後發現,真的有人將這兩個元件做了一些詳細的說明,所以決定整
Thumbnail
在設計表單的時候有幾種不同的元件,可以用來加快填寫表單的速度。而在這些元件中比較常見的 Checkbox 與 Toggle Switch 常常會讓我覺得有點像又有點不像,在製作表單的時候會有點不太確定在什麼情境下分別使用這兩種元件。在搜集資料後發現,真的有人將這兩個元件做了一些詳細的說明,所以決定整
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News