樹莓派4b GPIO按鍵事件觸發

2021-10-24 15:40:28 字數 1971 閱讀 9774

定義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,判斷中...