Button & LED

按下按鈕讓 LED 亮起算是最基本的控制了,硬體接線如下圖。注意 LED 長腳接 GPIO0,短腳接 GND,迴路上接一個 220Ω 電阻保護ㄧ下 LED 不要燒掉,電阻接長腳或短腳都可以。按鈕部分使用內建的下拉電阻(Pico 也只有下拉電阻),所以一端接 3.3V,另一端接 GPIO28,當按鈕按下時,GPIO28會收到高電位訊號,這樣就知道按鈕按下了。

button_led_bb

程式碼如下。

from machine import *

led = Pin(0, Pin.OUT)
bn = Pin(28, Pin.IN, Pin.PULL_DOWN)

while True:
    if bn.value() == 1:
        led.on()
    else:
        led.off()

更俐落一點的寫法是,將按鈕的狀態直接傳給 LED,這樣迴圈中只要一行程式碼就完成了。

while True:
    led.value(bn.value())

練習

  1. 能否做到按ㄧ下 LED 亮,再按ㄧ下 LED 滅?
  2. Double Click 如何做?
  3. Long Press(長按)如何做?例如長按 5 秒後 LED 閃爍,若在 5 秒內放掉按鈕則代表取消這次長按。

★本系列收錄於「第一次就上手」選單

發表迴響