使用Python控制樹莓派GPIO引腳


樹莓派是一款流行的單板計算機,廣泛用於各種專案,從家庭自動化到機器人技術。樹莓派的一個關鍵特性是它能夠透過其GPIO(通用輸入/輸出)引腳與物理世界互動。這些引腳允許您將感測器、執行器和其他電子元件連線到樹莓派,並使用軟體控制它們。

Python是一種用途廣泛的程式語言,廣泛用於在樹莓派上開發應用程式。事實上,樹莓派作業系統預裝了Python,使其成為程式設計GPIO引腳的自然選擇。

在本教程中,我們將探討如何使用Python控制樹莓派GPIO引腳。我們將介紹GPIO程式設計的基礎知識,並演示如何使用Python開啟和關閉LED。我們還將討論更高階的概念,例如PWM(脈衝寬度調製)以及如何與感測器介面。

在本教程結束時,您應該能夠很好地理解如何使用Python控制樹莓派GPIO引腳,並能夠將此知識應用到您自己的專案中。那麼,讓我們開始吧!

入門

在深入使用RPi.GPIO庫之前,我們需要使用pip安裝該庫。但是,因為它不是內建的,所以我們必須首先安裝RPi.GPIO庫。這可以使用pip包管理器來完成。

要安裝RPi.GPIO庫,請開啟您的終端並輸入以下命令:

pip install RPi.GPIO

這將下載並安裝RPi.GPIO庫及其依賴項。安裝完成後,我們可以開始使用RPi.GPIO並利用其模組!

使用Python控制樹莓派GPIO引腳

在我們可以使用RPi.GPIO庫之前,我們需要將其匯入到我們的Python指令碼中。我們可以在指令碼開頭新增以下程式碼行:

import RPi.GPIO as GPIO

配置GPIO引腳

匯入RPi.GPIO庫後,我們需要配置GPIO引腳。我們可以使用GPIO.setmode()和GPIO.setup()函式來完成此操作。

GPIO.setmode()函式設定GPIO引腳的模式。有兩種模式:BCM和BOARD。在BCM模式下,GPIO引腳由其Broadcom SOC通道號標識。在BOARD模式下,GPIO引腳由其在樹莓派上的物理引腳號標識。

以下是將GPIO模式設定為BCM模式的示例:

GPIO.setmode(GPIO.BCM)

GPIO.setup()函式用於配置GPIO引腳的方向和初始狀態。該函式接受兩個引數:GPIO引腳號和方向(GPIO.IN或GPIO.OUT)。

以下是將GPIO引腳18配置為輸出的示例:

GPIO.setup(18, GPIO.OUT)

控制GPIO引腳

配置GPIO引腳後,我們可以開始使用Python程式碼控制它們。我們可以使用兩個主要函式來控制GPIO引腳:GPIO.output()和GPIO.input()。

GPIO.output()函式用於設定輸出GPIO引腳的狀態。該函式接受兩個引數:GPIO引腳號和狀態(GPIO.HIGH或GPIO.LOW)。

以下是將GPIO引腳18設定為HIGH的示例:

GPIO.output(18, GPIO.HIGH)

GPIO.input()函式用於讀取輸入GPIO引腳的狀態。該函式接受一個引數:GPIO引腳號。

以下是讀取GPIO引腳17狀態的示例:

state = GPIO.input(17)

示例

以下是您可以用來控制樹莓派GPIO引腳的完整Python程式碼:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)

# Set up the GPIO pins
led_pin = 11
button_pin = 13

GPIO.setup(led_pin, GPIO.OUT)
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# Turn the LED on
GPIO.output(led_pin, GPIO.HIGH)

# Wait for button press
while GPIO.input(button_pin) == GPIO.HIGH:
    time.sleep(0.1)

# Turn the LED off
GPIO.output(led_pin, GPIO.LOW)

# Clean up the GPIO pins
GPIO.cleanup()

在這個例子中,我們使用RPi.GPIO庫來控制樹莓派上的GPIO引腳。我們首先將模式設定為GPIO.BOARD,它使用物理引腳編號系統。然後,我們設定兩個引腳,一個用於LED,一個用於按鈕,並分別將它們配置為輸出和輸入。

接下來,我們開啟LED並等待按下按鈕。一旦按下按鈕,我們就關閉LED並清理GPIO引腳。

總的來說,這段程式碼演示了使用Python控制樹莓派GPIO引腳的基礎知識。透過修改這段程式碼,您可以控制各種各樣的裝置和感測器,使樹莓派成為一個非常通用的物理計算專案平臺。

結論

總之,使用Python控制樹莓派GPIO引腳為自動化、機器人和物聯網專案開闢了無限可能。RPi.GPIO庫為控制引腳提供了簡單直觀的介面,藉助pigpio和gpiozero等附加庫,可以實現更高階的功能。

在本教程中,我們介紹了GPIO引腳及其功能的基礎知識,如何安裝和使用RPi.GPIO庫,並探索了一些針對不同場景的示例程式碼。我們還討論瞭如何使用pigpio和gpiozero等其他庫來實現更高階的功能,例如PWM和中斷。

有了這裡提供的知識和工具,任何人都可以開始在樹莓派平臺上構建自己的專案。無論是控制LED、電機還是感測器,可能性都是無限的。

更新於:2023年8月31日

瀏覽量:559

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.