樹莓派GPIO基礎

0. 平臺

  1. 樹莓派3
  2. GPIO模塊
  3. python環境

1. 導入模塊

import RPi.GPIO as GPIO 

通過這種方式,在腳本後面可以使用GPIO來引用該模塊。
還可以使用下面的代碼來測試是否加載成功:

try:
    import RPi.GPIO as GPIO
except RuntimeError:
    print("Error importing RPi.GPIO!")

2. 設置模式

樹莓派的引腳引用模式有兩種,一種是板子上排插的順序,還有種是BCM引腳順序,具體看下面的這個示意圖:
樹莓派引腳圖
物理接口就是第一種,稱爲GPIO.BOARD;BCM編碼稱爲稱爲GPIO.BCM
設置引腳引用模式:

GPIO.setmode(GPIO.BOARD)
#or
GPIO.setmode(GPIO.BCM)

檢測使用的哪種模式可以使用:

mode=GPIO.getmode()

mode的取值有GPIO.BOARD, GPIO.BCM, None

3. 設置引腳方向(輸入,輸出)

以下代碼無特殊說明,均使用GPIO.BOARD引腳映射模式。

如設置40號引腳爲輸入方向:

GPIO.setup(40,GPIO.IN)

輸出同理:

GPIO.setup(40,GPIO.OUT)

輸出還可以加初始電平:

GPIO.setup(40,GPIO.OUT,initial=GPIO.HIGH)

如果要同時設置多個引腳:

list=[11,12]
GPIO.setup(list,GPIO.OUT)

(目前有個疑問,樹莓派設置成輸入方向時,有無初始值【上拉或下拉】,設置成輸出方向是,是開漏還是推輓?有時間試驗一下。)

4. 獲取輸入

GPIO.setup(40,GPIO.IN)
in_value=GPIO.input(40)

in_value的取值爲0/GPIO.LOW/False or 1/GPIO.HIGH/True

5. 輸出電平

GPIO.setup(40,GPIO.OUT)
GPIO.output(40,GPIO.HIGH)

6. 清空狀態

在python的GPIO文檔中建議,在程序的最後清空引腳狀態來保護引腳:
“`python
GPIO.cleanup() #清空所有引腳狀態
GPIO.cleanup(chanList) #清空部分引腳狀態

7. 一點提醒

文檔中說到,使用python的gpio庫是基於內核的,由於內核的搶佔機制,使得其不適用於實時性系統項目。

相關文檔:https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章