GPIO:有關Raspberry Pi 4和3連接的所有信息

樹莓派 4 GPIO

很多 Raspberry Pi 4板的GPIO引腳3,以及它的前任產品,為SBC板提供了與Arduino相似的功能,因為有了它們,您就可以通過使用諸如Python之類的不同語言的代碼來創建由操作系統控制的非常有趣的電子項目。

這使該板不僅僅是一台廉價計算機。 它將允許您連接多種 電子元件 您可以與Arduino一起使用,但也可以通過Pi進行控制。 在本指南中,我將嘗試為您提供有關這些GPIO引腳的盡可能多的信息,以便您可以開始使用它們。

什麼是GPIO?

GPIO

GPIO 是通用輸入/輸出(General Purpose Input / Output)的縮寫。 不同的電子產品都可以使用它,例如芯片本身或某些PCB板(例如Raspberry Pi)。 顧名思義,它們是可以配置為執行不同功能的引腳,因此它們是通用的,而不是特定的用途。

它將是運行時的用戶,可以 配置這些GPIO引腳 這樣他們就可以做他想要的。 它可以通過不同的方式來完成,例如使用控制台中的某些代碼或腳本,或者使用Python程序,由於您可以使用的選項數量眾多,這是最簡單,最優選的方式之一。

這樣,Raspberry Pi不僅具有一系列端口,而且 接口 以連接多個標准設備,但要添加這些GPIO引腳,以便您可以添加自己創建的其他電子設備或製造商項目。 用與Arduino及其I / O引腳相同的方式進行控制。

Y 不只限於Arduino或Raspberry Pi,其他類似的SBC板和嵌入式產品也是如此。

GPIO功能

和之間 她的特點 最突出的:

  • 可以 被配置 短刀 作為輸入作為輸出。 他們具有偶像的雙重性 Arduino的.
  • GPIO引腳也 可以激活和停用 通過代碼。 即,可以將它們設置為1(高電壓電平)或0(低電壓電平)。
  • 當然可以 讀取二進制數據,作為XNUMX和XNUMX,即電壓信號或不存在電壓信號。
  • 輸出值 讀寫.
  • 在某些情況下可以將輸入值配置為 活動 這樣它們就可以在電路板或系統上產生某種類型的動作。 一些嵌入式系統將它們用作IRQ。 另一種情況是配置為,當某些傳感器激活一個或多個引腳時,執行一些操作...
  • 至於電壓和強度,您必須非常清楚板子可接受的最大容量,在這種情況下,是Raspberry Pi 4或3。請勿通過它們,以免損壞板子。

順便說一句,當一組GPIO引腳被分組時(與Raspberry Pi一樣),該組稱為 GPIO口.

Raspberry Pi的GPIO引腳

Raspberry Pi GPIO

該方案對版本4、3,零有效

新的 Raspberry Pi 4開發板和版本3 它們配備了大量的GPIO引腳。 並非所有版本都提供相同的數量,也不是以相同的方式編號,因此您必須謹慎使用,以充分了解如何根據所擁有的型號和版本進行連接。

但是更通用的是您可以在Raspberry Pi板端口中找到的GPIO類型。 這是我要澄清的第一件事,因為這就是您所知道的 引腳類型 您可以指望您的項目:

  • 饋送這些引腳用於連接電子項目的電源線或接線。 它們對應於類似於Arduino板上的引腳,並提供5v和3v3的電壓(3.3v限於50mA負載)。 此外,您還將找到接地的(GND或Ground)。 如果您不使用外部電源,例如電池或適配器,則這些引腳可以為電路供電提供很大幫助。
  • DNC(不連接):它們是某些版本的針腳,沒有功能,但是在新板上,它們被賦予了另一個目的。 您只會在更原始的Pi模型中找到這些。 在新的3和4中,它們通常會標記為GND,從而能夠集成到前一組中。
  • 可配置引腳:它們是普通的GPIO,可以用代碼進行編程,我將在以後解釋做您需要的事情。
  • 特殊別針:這些是一些用於特殊連接或接口的連接,例如Arduino,UART,TXD和RXD串行連接等。 您甚至會發現一些像SDA,SCL,MOSI,MISO,SCLK,CE0,CE1等的東西。 他們在其中脫穎而出:
    • PWM,它可以調節脈衝寬度,就像我們在上一篇文章中看到的那樣。 在Raspberry Pi 3和4上,它們是GPIO12,GPIO13,GPIO18和GPIO19。
    • SPI是我在另一篇文章中也討論過的另一種通信接口。 對於新的40針板,它們是針(如您所見,具有不同的通信通道):
      • SPI0:MOSI(GPIO10),MISO(GPIO9),SCLK(GPIO11),CE0(GPIO8),CE1(GPIO7)
      • SPI1:MOSI(GPIO20); MISO(GPIO19); SCLK(GPIO21); CE0(GPIO18); CE1(GPIO17); CE2(GPIO16)
    • I2C 是我在此博客中也介紹過的另一種聯繫。 該總線由數據信號(GPIO2)和時鐘(GPIO3)組成。 除了EEPROM數據(GPIO0)和EEPROM時鐘(GPIO1)。
    • 串行,與TX(GPIO14)和RX(GPIO15)引腳的另一種非常實用的通信,如您可以在板上找到的那樣 Arduino UNO.

請記住,GPIO是Raspberry Pi與外界之間的接口,但是它們具有 它的局限性,尤其是電氣。 為了避免損壞電路板,您必須考慮的一點是要記住,這些GPIO引腳通常沒有緩衝,即沒有緩衝。 這意味著它們沒有保護,因此您必須監視施加的電壓和強度的大小,以免最終導致無用的板塊...

版本之間的GPIO差異

舊的Raspberry Pi GPIO引腳

就像我說的, 並非所有型號都是相同的針腳這裡有一些圖表,因此您可以看到模型之間的差異,從而可以專注於Raspberry Pi 4和3,它們是最新的,而且您可能擁有。 兩者之間有所不同(每個組的所有共享相同的引腳):

  • Raspberry Pi 1 Model B Rev 1.0,其26引腳與Rev2略有不同。
  • Raspberry Pi 1 Model A和B Rev 2.0,均具有26針型號。
  • Rapsberry Pi型號A +,B +,2B,3B,3B +,零和零W,還有4種型號,所有型號均帶有40針GPIO接頭。

我可以插入什麼GPIO?

樹莓派帽子

您將不僅能夠 連接電子設備晶體管, 濕度/溫度傳感器, 熱敏電阻, 步進馬達, 發光二極管, 等等。 您還可以連接專門為Raspberry Pi創建的組件或模塊,這些組件或模塊可擴展板子的功能,使其超出底座中的功能。

我指的是著名的 帽子或帽子 和在市場上可以找到的盤子。 有很多類型,從用於通過驅動器控制電動機的類型,到其他用於創建驅動器的類型。 計算集群,帶 LED面板 可控制的,添加 DVB電視功能, 液晶屏等等。

這些帽子 它們安裝在Raspberry Pi板上, 匹配其正常工作所需的GPIO。 因此,其組裝非常簡單且快速。 當然,請確保與每個帽子兼容的平板版本,因為您所看到的GPIO端口是不同的...

我說這是為了防止您的盤子較舊,因為帽子是 僅與最新版本兼容。 Raspberry Pi A +,B +,2、3和4模型也是如此。

在Raspberry Pi上使用GPIO的簡介

引腳排列命令輸出

資料來源:Raspberry Pi

首先,在Raspbian上,您可以打開控制台並輸入 命令 引腳它會返回給您的是終端上的圖像,板上有GPIO引腳,每個引腳都有什麼用。 在工作時總是將其呈現出來的非常實用的方法,這樣您就不會感到困惑。

第一個項目:使用GPIO閃爍LED

Raspberry Pi上帶LED的GPIO

製作一種最基本的方法 帶有GPIO的“ Hello world” 使用連接到Raspberry Pi引腳的簡單LED即可看到它們的工作原理。 在這種情況下,儘管您可以選擇另一個普通引腳,但我已將其連接到GND,另一個連接到了引腳17。

連接後,您可以 從Raspbian控制他們 利用終端。 在Linux中,使用的特定文件類似於/ sys / class / gpio /目錄中的文件。 例如,創建具有必要結構以開始工作的文件:

echo 17 > /sys/class/gpio/export

那麼你就可以 配置為輸入(輸入)或輸出(輸出) 在我們的示例中選擇了該引腳17。 您可以很容易地做到這一點:

echo out > /sys/class/gpio/gpio17/direction

在這種情況下作為輸出,因為我們想向LED發送電脈衝以將其打開,但是如果它是傳感器等,則可以使用。 現在 打開(1)或關閉(0) 您可以使用的LED:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

如果您想轉到另一個項目並 刪除條目 創建後,您可以通過以下方式進行操作:

echo 17 > /sys/class/gpio/unexport

順便說一句,您還可以收集項目中所有必要的命令,就像以前的所有命令一樣,將它們保存為文件類型 bash腳本 然後一次全部打包運行,而不是一一鍵入。 當您重複多次相同的練習時,這很方便,因此您無需重寫。 隨便走吧。 例如:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

完成後,保存,然後可以為其賦予適當的執行和執行權限 劇本 要讓LED亮起,請等待1.3秒鐘,然後像這樣循環關閉...

chmod +x led.sh
./led.sh

編程提前

編程語言源代碼

顯然,以上內容適用於只有很少組件的小型電子項目,但是如果要創建更高級的功能而不是命令,則可以使用以下命令: 編程語言 製作使操作自動化的不同腳本或源代碼。

可以使用 不同的工具 用非常不同的語言進行編程。 社區開發的庫使您的工作變得更加輕鬆,例如WiringPi,sysfs,piggio等。 程序可以通過Ruby,Java,Perl,BASIC甚至C#來實現,從Python(這是許多人的首選)中可以選擇的多種多樣。

Raspberry Pi正式為您提供 設施很多 對您的GPIO進行編程,例如:

  • ,適用於那些不知道如何編程並且想使用該項目的拼圖塊的人,也可以使用該塊拼圖對Arduino進行編程等。 圖形塊編程非常直觀,在教育領域非常實用。
  • 蟒蛇:這種簡單的解釋型編程語言使您可以創建簡單而強大的代碼,並且可以使用大量的庫來完成幾乎所有想像的事情。
  • C / C ++ / C#:是更強大的編程語言,用於創建與GPIO交互的二進製文件。 您可以通過庫使用標準格式或內核接口,以多種方式來執行此操作pi,也可以通過第三方庫(例如 皮吉歐.
  • 處理3,類似於Arduino。

靈活選擇 您最喜歡或您認為簡單的一種。


4條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   敵人 他說:

    關於從 Rasperry 開始的非常好的文章

    1.    艾薩克 他說:

      非常感謝。

      1.    露絲·麥地那(Ruth Medina) 他說:

        你是作者嗎?

        1.    艾薩克 他說: