A. 樹莓派怎麼鏈接led燈和蜂鳴器
led燈用杜邦線一頭接一個IO口(樹莓派那些io口任選一個),一頭接地,通過控制IO口控制led燈。
蜂鳴器用杜邦線正極接一個IO口(任選一個),一頭接地,同樣是通過控制IO口控制led燈。
B. 樹莓派按鍵控制LED燈
上一次學習了用樹莓派控制一個led燈。
那麼如何用按鍵來控制led燈呢?
就是說有一個按鍵,我們按下的時候led燈亮起,再按一次led燈關閉
如此往復呢?
首先我們在13號引腳那裡連接一個上拉電阻,然後再連接開關,如下圖。
在這種情況下,我們用11號引腳控制led燈。
程序如下。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
led=True
while True:
while (GPIO.input(13)==GPIO.HIGH):
pass
else:
led= not led
pass
if led:
GPIO.output(11,GPIO.HIGH)
pass
else:
GPIO.output(11,GPIO.LOW)
pass
pass
在這里可以看到。但是程序不是很健壯,原因是我們沒有消抖。
當我們按下的一瞬間,可能程序已經重復執行了好多遍。
因此,現在想辦法消抖。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
led=True
while True:
while(GPIO.input(13)==GPIO.HIGH):
pass
else:
time.sleep(0.1)
if(GPIO.input(13)==GPIO.LOW):
led=not led
pass
pass
if led:
GPIO.output(11,GPIO.HIGH)
time.sleep(0.1)
pass
else:
GPIO.output(11,GPIO.LOW)
time.sleep(0.1)
pass
pass
這樣就非常准了