樹莓派瞎玩 4 控制GPIO

2021-07-10 18:58:38 字數 2264 閱讀 6341

樹莓派瞎玩~4~控制gpio

樹莓派上提供了一組gpio(general purpose input output,即通用輸入/輸出)介面,這些介面可以用於做一些電子相關的實驗:控制一些硬體裝置,如最常見的發光二極體、電機等,或者讀取一些訊號的狀態,如開關、感測器等。這裡需要注意的是,樹莓派中的gpio只支援數字輸入輸出,即1和0對應高電平3.3v和低電平0v,因此必要的時候可能需要數模轉換。

connection of a gpio to a voltage higher than 3.3v will likely destroy the gpio block within the soc.hardware-gpio

在樹莓派的左上角,有兩排凸出的針,這塊就是gpio了。在model b+上有40個引腳,其中26個是gpio引腳,其餘的是電源線和地線(還有兩個id eeprom引腳)。在我們使用這些引腳和外界互動時,首先需要知道這個引腳的編號,樹莓派上的引腳有兩種編號,一種是gpio編號,如下圖所示:

(來自:raspberrypi.org)

這種編號順序是跳躍的,並沒有乙個很好的規則來記住它們,可以將他們記下來查閱。另一種編號是物理編號,如下圖

(來自:raspberrypi.org)

這種編號方便記憶,但通常情況下,建議使用第一種gpio編號。

在樹莓派上,使用linux提供的重定向特性,可以將gpio介面虛擬成一組檔案,這為使用者提供了一種作業系統底層硬體的簡易介面。從上圖中首先選取乙個gpio引腳,如gpio24,在控制這個引腳之前,首先需要將操作介面從核心空間暴露給使用者:

其實原本選擇的是14引腳,第一排第3個為地線,第4個為gpio14,正好用萬用表測嘛,還省的數那麼多,結果,手一抖看到了瞬間燦爛的花火~ (- -|||),還是選24吧。

pi@raspberrypi

:~$ echo 24 > /sys/class

/gpio/export

執行後系統將在/sys/class/gpio下建立乙個gpio24目錄,並在這個目錄下建立幾個檔案,如下所示

pi@raspberrypi

:~$ cd /sys/class/gpio

pi@raspberrypi

:/sys/class/gpio

$ ls

export gpio24 gpiochip0 unexport

pi@raspberrypi

:/sys/class/gpio

$ cd gpio24

pi@raspberrypi

:/sys/class/gpio/gpio24

$ ls

active_low device direction edge subsystem uevent value

其中direction指示這個引腳用於輸入或是輸出,value則表示引腳的高低電平。

例如,若將24引腳置為高電平,則連線在24引腳和底線之間的led將被點亮,(盡量不要直接將led加在電源上,最好加入乙個限流電阻),用萬用表測得電壓3.3v。

pi@raspberrypi

:/sys/class/gpio/gpio24

$ echo out > direction

pi@raspberrypi

:/sys/class/gpio/gpio24

$ echo 1 > value

同理,若讓led熄滅,則向24引腳輸出低電平

pi@raspberrypi

:/sys/class/gpio/gpio24

$ echo 0 > value

將24的引腳設定為輸入,則可用於讀取引腳的訊號,首先24引腳連線3.3v,檢視引腳值(此時為1),然後連線底線,檢視引腳值(此時為0)。

pi@raspberrypi

:/sys/class/gpio/gpio24

$ echo in > direction

pi@raspberrypi

:/sys/class/gpio/gpio24

$ cat value

1pi@raspberrypi

:/sys/class/gpio/gpio24

$ cat value

0

樹莓派GPIO控制 python篇

樹莓派的軟體擴充套件庫雖然很多,但也導致了擴充套件庫 碎片化 的問題,例如操作樹莓派的gpio埠,gpio的編號便存在三種不同的方式。插座編號方式 編號側重p1插座側,從上到下,從左到右。正如圖3的header一欄。bcm2835編號方式 編號側重cpu暫存器,根據bcm2835的gpio暫存器編號...

Linux學習 樹莓派gpio控制

編寫使用者程式實現對raspberry pi的gpio口輸出高 低電平,讓接在gpio口上的發光二極體閃爍。熟悉linux系統裝置驅動程式框架 wiringpi 是應用於樹莓派平台的 gpio 控制庫函式,wiringpi 遵守 gun lv3。wiringpi 使用 c 或者 c 開發並且可以被其...

樹莓派養成之路 GPIO控制

看了網上多數都是正極直接級vcc,然後控制物理介面11的輸出。但問題在於初始化11介面後led燈就常亮,所以我直接使用11,13兩個口。看下我的接法 我大部分參考樹莓派開發系列教程9 樹莓派gpio控制 幫助了我很多,但也給我埋了個坑。程式初始化11介面為輸出模式,程式退出後沒有復位。導致程式下次執...