按鈕開關

最後更新日期:2022-03-24 10:41:52

按鈕開關是常見的輸入元件,其外觀如下圖(也有其他樣貌,或是其他的連通模式,此篇以按下時會導通,放開時則斷開為主,有興趣的讀者,可自行上網查詢)。

Button元件正面 Button元件側面 Button元件背面

大部分都是四支接腳,接腳距離長的一邊是互相連接的,接腳距離短的一邊,平時是斷開的,當按鈕按下時,才會接通。簡化電路後,等效是兩支接腳的斷開/連接控制元件。

Button元件電路示意圖

一般按鈕開關會以數位輸入的方式來進行識別,即樹莓派讀取電位時,該處電位為0V(低電位、邏輯0)或3.3V(高電位、邏輯1),以便進行後續的動作。然而,何處是樹莓派連接,用來量測電位的位置呢?

Button元件如何連接

先把電源連接上去吧!

Button元件如何連接

常見的連接電阻方式有:上拉電阻(與VCC、3.3V連接)、下拉電阻(與GND連接)。

Button元件連接上拉電阻 Button元件連接下拉電阻

上方無論是上拉/下拉電阻的連接方式,都需要3條線(VCC、GND、樹莓派GPIO),2個元件(按鈕開關、電阻),連接起來挺不容易的,好在樹莓派有內建上/下拉電阻的功能,下方以內建上拉電阻來比對,可以發現使用內建上拉電阻時,只需要2條線(GND、樹莓派GPIO)及1個按鈕元件。

Button元件連接內建上拉電阻

# 實作步驟

  • 學習使用
  • 設計電路圖
  • 連接電路
  • 搭建積木程式 & 執行

# 學習使用

按下按鈕時,若LED燈是暗的狀態,則點亮它,反之,將其關閉。(此篇未著墨於開關的彈跳現象,有興趣的讀者,可自行查詢。)

# 設計電路圖

電路圖設計如下:

按鈕電路圖

# 連接電路

實際線路如下圖,建議連接步驟如下,若您要移除電路時,請使用相反的順序進行即可。

  1. 於麵包板上連接相關元件
  2. 資料、控制腳位連接上樹莓派
  3. GND腳位連接上樹莓派
  4. VCC(5V or 3.3V)腳位連接上樹莓派

按鈕電路連接

# 搭建積木程式 & 執行

開啟積木程式畫面如下,若您已經下載代理程式,並且完成「rp_agent」設定,可以將首次使用須知下方的框框,勾選「不再顯示此訊息」,並按下「確定」按鈕。

PS. cwBlockly頁面請於樹莓派中執行。

積木程式首次使用須知

初始畫面如下。

積木程式初始畫面

按鈕開關的積木位於「開關元件」→「按鈕開關」。

按鈕開關定義積木

拖曳「按鈕開關定義積木」至RPi預設積木中。

按鈕開關定義積木

依據之前章節學習到的方式,建立一個LED元件積木,並將腳位設定為16。

LED定義積木

此處使用到一個「變量」,用來記錄燈亮與否。從「變量」選擇「建立變數...」。

建立變數積木

變數名稱輸入「light」,並按下確定。

建立變數積木

再次開啟「變量」,並選擇「設定light為」的積木。

選擇light變數積木

將其拖放至LED定義積木下方,並由「邏輯」區塊中,拖曳邏輯值積木連接,並設定為「假」(低電位)。

放置light變數積木

同時設定LED為「低電位」,即關燈狀態,對應light變數的「假」(低電位)。

設定LED為關燈

終於來到本程式的重點,按鈕按一下,會進行開燈或是關燈的動作,此處接收「按一下」動作的積木,位於「開關元件」→「當 button 按鈕按下時」,將其拖曳並放置。

按鈕按一下事件積木

按鈕按一下事件積木

按下的內容動作,留給讀者試試,底下會提供一種解法(未必是最佳的方式),思路是每次按下時,變更light的值,由「真->假」或是由「假->真」,再設定LED開燈或關燈。

目前程式執行到此處就會結束,無法實現監聽按鈕按下的事件,所以後面加上一個無限迴圈,使此程式不結束。

讓程式不結束

下載本範例積木程式 Button_01.rpb


若您對基礎電子套件有興趣,可至蝦皮賣場購買,若是學校團體亦可來信訂購,謝謝。

若對本篇教學文章有任何建議或問題,歡迎您來信:chipwaygo@gmail.com,謝謝。