溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

RPi.GPIO模塊使用基礎(chǔ)是怎樣的

發(fā)布時間:2022-01-05 19:16:04 來源:億速云 閱讀:142 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)RPi.GPIO模塊使用基礎(chǔ)是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

RPi.GPIO 模塊程序包提供了一個在 Raspberry Pi 中控制 GPIO 的類。

注意,該模塊不適合應(yīng)用到追求實(shí)時性或計(jì)數(shù)周期的應(yīng)用中。這是由于您無法預(yù)測 Ptyhon 何時繁忙,以及資源回收的時間。而且它是運(yùn)行在基于 Linux 核心的系統(tǒng)中,也不合適用于實(shí)時應(yīng)用 – 原因在于其它進(jìn)程可能獲得更高的 CPU 優(yōu)先級。如果您一定要追求實(shí)時操作的性能,可以考慮購買一塊 Arduino 主板http://www.arduino.cc!

還需要注意一點(diǎn),目前的版本還不支持 Raspberry Pi 的 SPI、I2C、1-wire、串口等功能。計(jì)劃在不久的將來會實(shí)現(xiàn)的!

導(dǎo)入模塊

導(dǎo)入 RPi.GPIO 模塊:

1

import RPi.GPIO as GPIO

通過該操作,您可以將模塊名稱映射為 GPIO,以便接下來您其它腳本進(jìn)行使用。

導(dǎo)入模塊并檢查它是否導(dǎo)入成功,可以嘗試:

1

2

3

4

try:

    import RPi.GPIO as GPIO

except RuntimeError:

    print("導(dǎo)入 RPi.GPIO 時出現(xiàn)錯誤!這可能由于沒有超級用戶權(quán)限造成的。您可以使用 'sudo' 來運(yùn)行您的腳本。")

針腳編號

目前有兩種方式可以通過 RPi.GPIO 對 Raspberry Pi 上的 IO 針腳進(jìn)行編號。

第一種方式是使用 BOARD 編號系統(tǒng)。該方式參考 Raspberry Pi 主板上 P1 接線柱的針腳編號。使用該方式的優(yōu)點(diǎn)是無需考慮主板的修訂版本,您硬件始終都是可用的狀態(tài)。您將無需從新連接線路和更改您的代碼。

第二種方式是使用 BCM 編號。這是一種較低層的工作方式 – 該方式參考 Broadcom SOC 的通道編號。使用過程中,您始終要保證主板上的針腳與圖表上標(biāo)注的通道編號相對應(yīng)。您的腳本可能在 Raspberry Pi 主板進(jìn)行修訂版本更新時無法工作。

指定您所使用的方式(必須指定):

1

GPIO.setmode(GPIO.BOARD)

或者

1

GPIO.setmode(GPIO.BCM)

警告

可能您的 Raspberry Pi 的 GPIO 上同時有多個腳本/循環(huán)。因此,如果 RPi.GPIO 檢測到某個針腳被設(shè)置為其它用途而非默認(rèn)的狀態(tài)(默認(rèn)為輸入),您會在嘗試配置某腳本時得到警告消息。

禁用該警告消息:

1

GPIO.setwarnings(False)

配置通道

您需要為每個用于輸入或輸出的針腳配置通道。

配置為輸入的通道:

1

GPIO.setup(channel, GPIO.IN)

(通道編號是基于您所使用的編號系統(tǒng)所指定的(BOARD 或 BCM)。)

更多關(guān)于輸入通道的進(jìn)階信息可以在這里找到。

配置為輸出的通道:

1

GPIO.setup(channel, GPIO.OUT)

(通道編號是基于您所使用的編號系統(tǒng)所指定的(BOARD 或 BCM)。)

您還可以指定輸出通道的初始值:

1

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

輸入

讀取 GPIO 針腳的值:

1

GPIO.input(channel)

(通道編號是基于您所使用的編號系統(tǒng)所指定的(BOARD 或 BCM)。)這將返回 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

輸出

設(shè)置 GPIO 針腳的輸出狀態(tài):

1

GPIO.output(channel, state)

(通道編號是基于您所使用的編號系統(tǒng)所指定的(BOARD 或 BCM)。)

狀態(tài)可以為 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

清理

在任何程序結(jié)束后,請養(yǎng)成清理用過的資源的好習(xí)慣。使用 RPi.GPIO 也同樣需要這樣?;謴?fù)所有使用過的通道狀態(tài)為輸入,您可以避免由于短路意外損壞您的 Raspberry Pi 針腳。注意,該操作僅會清理您的腳本使用過的 GPIO 通道。

在您的腳本結(jié)束后進(jìn)行清理:

1

GPIO.cleanup()

Raspberry Pi 修訂版本和 RPi.GPIO 版本

檢測 Raspberry Pi 主板的修訂版本:

1

GPIO.RPI_REVISION

檢測 RPi.GPIO 的版本:

1

GPIO.VERSION

關(guān)于RPi.GPIO模塊使用基礎(chǔ)是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI