定義8個gpio按鍵,要求每個按鍵都不影響主程式的執行。只有當按鍵被按下時樹莓派檢測到高電平、觸發中斷,並將被按下的按鍵的編號輸出。
使用add_event_detect
函式新增觸發事件。
使用setup
函式一次性配置多個gpio
# -*- coding: utf-8 -*-
import rpi.gpio as gpio
key1 =
1key2 =
2key3 =
3key4 =
4key5 =
5key6 =
6key7 =
7key8 =
8## initial key i/o
gpio.setmode(gpio.bcm)
gpio.setwarnings(
false
)keychannel =
[key1,key2,key3,key4,key5,key6,key7,key8]
gpio.setup(keychannel, gpio.in)
defkeycallback
(key)
:if key == key1:
keystatus =
'key1'
elif key == key2:
keystatus =
'key2'
elif key == key3:
keystatus =
'key3'
elif key == key4:
keystatus =
'key4'
elif key == key5:
keystatus =
'key5'
elif key == key6:
keystatus =
'key6'
elif key == key7:
keystatus =
'key7'
elif key == key8:
keystatus =
'key8'
print
(keystatus)
# key i/o interrupt
gpio.add_event_detect(key1, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key2, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key3, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key4, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key5, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key6, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key7, gpio.rising, callback=keycallback, bouncetime=
200)
gpio.add_event_detect(key8, gpio.rising, callback=keycallback, bouncetime=
200)
if __name__ ==
'__main__'
:while
true
:continue
樹莓派 按鍵程式
樹莓派3b wiringpi庫的使用 button按鈕操作 五 樹莓派3b wiringpi庫的使用 點亮led 如何編譯的教程 樹莓派學習筆記 wiringpi簡介 安裝和管腳說明 檢視樹莓派gpio引腳編號及定義 gpio readall輸出如下,說明wiringpi庫已經安裝成功。原來的官方鏈...
樹莓派二三事
在經歷了n次重新燒錄系統後,我決定將一些我用到的一些操作記錄下來,以備不時之需 系統燒錄 2.格式化sd卡 安裝虛擬鍵盤sudo apt get install matchbox keyboard 安裝後重啟 sudo reboot配置中文環境 安裝中文字型 sudo apt get install...
樹莓派的按鍵中斷
一 實驗現象 程式實現在樹莓派上通過中斷的方式檢測按鍵是否按下,如果按鍵按下的話,會列印出按鍵按下的提示資訊 二 操作步驟 1,初始化wiringpi庫 2,設定按鍵引腳為輸入模式 3,設定引腳為上拉模式 即 當按鍵沒有被按下時,該輸入腳為高電平 4,註冊中斷程式,並且設定中斷的觸發方式 5,判斷中...