這篇文章來源于DevicePlus.com英語網站的翻譯稿。近年來,Raspberry Pi因其可以用作可用于媒體和復古視頻游戲的廉價、兼容的Linux機器以及網絡設備而備受喜愛。多年來,一些業(yè)余愛好者一直以這些方式來使用他們的Pi,但是有些人并不清楚設備側面的引腳到底是做什么的。
其實,正是這些引腳發(fā)揮著Pi的真實功用。它們可以控制家居設備、機器、新的發(fā)明,甚至機器人。那么,為什么這么多人都對這些引腳不甚了解呢?
這些引腳的實際作用是什么?
這40個(或26個,取決于您的Pi型號)引腳是所謂的“GPIO接口”的一部分。在這些接口中,有四種主要的引腳:
? 電源: 提供3.3V和5V的直流電源
? 接地(GND): 連接到地端,以閉合電路
? DNC: 代表“不連接”,所以可以忽略
? GPIO: 可以設置為發(fā)送或接收控制電壓
GPIO代表“通用輸入/輸出”,正是這些引腳讓Raspberry Pi發(fā)揮了其功效。因為這些引腳沒有特定的功能,所以可以設置為某個專用功能,例如控制信號。
設置為輸出的GPIO引腳可以提供3.3V(高電平信號)或0V(低電平信號)的電壓。當設置為輸入時,該引腳可以讀取相同數值的電壓。
GPIO引腳不能提供過多電源
需要謹記的很重要的一點是GPIO引腳(以及3.3V電源引腳)是用于控制其他組件并與之通信的。
您可以從組合的3.3V引腳中獲取約51mA的電流,但是在連接的時候需要小心;如果您試圖讓電路從這些3.3V引腳獲取過大的電流,這可能會燒壞整個電路板。
而5V電源引腳則可以為您獲取電源提供的所有電流,其中要減去Raspberry Pi本身使用的電源。
將GPIO引腳連接到面包板
當您第一次使用這些GPIO引腳時,最好使用一個面包板。這樣的話可以在不進行焊接的情況下構建電路并對其進行修改。
如果您以前從來沒有使用過面包板,請通過以下視頻了解其基礎知識:
GPIO擴展板也會起到很大的作用,可以通過引線將其連接到GPIO接口,并將引腳直接放置在面包板上,這些引腳帶有明確的標記。
不過這需要一些空間:面包板每側需要20行。一個小的板子幾乎就只有20行!有多余的40行左右的面包板可以為初學者提供充足的空間。
具有特殊用途的GPIO引腳
每個GPIO引腳都可以設置為用于發(fā)送和接收高電平和低電平信號。有些引腳也會有一些特殊用途。
我們不會在這里進行深入探究,只需要了解大概就好。
硬件 PWM
GPIO引腳輸出3.3V或0V:一個高電平信號或低電平信號。脈寬調制或PWM,是一種通過快速打開和關閉引腳來模擬介于兩者之間電壓的方法。
這不是真正的模擬信號,但是可以用于調暗LED光線之類的功能。它的閃爍速度要大于您的視覺敏感頻率,所以您看到的只是燈光變暗了而已。
您可以使用低通濾波器將PWM平滑為模擬信號。如果您對音質不是很挑剔的話,可將其用于模擬音頻,比如用于門鈴或者玩具就不錯。
您可以使用軟件通過任意GPIO引腳生成PWM信號,但是操作系統(tǒng)會將其與其他任務并行處理,所以該信號可能會發(fā)生振動。
GPIO引腳18和19上有可用的硬件PWM。硬件PWM和耳機插孔使用相同的電路,所以不能同時使用。
串行總線引腳
當您查看下面的圖表時(被稱作Raspberry Pi“引腳圖”),您會看到一些引腳是I2C、 SPI以及UART串行。這些是可用于與其他組件之間進行數據發(fā)送和接收的串行總線協(xié)議。
您可以將這些與模擬轉換器或DAC結合使用,以輸出模擬信號。如果想要高質量的音頻或者想要控制許多組件,這種方式可能比使用PWM方式更可取。
上拉和下拉電阻
通常,您會希望Raspberry Pi GPIO引腳可以讀取按鈕或者開關的位置。這通過接線可以很容易實現,因為接線之后,被連接于控制電壓以讀取高電平信號或接地以讀取低電平信號的電路將會閉合。
問題是當這個電路斷路而沒有任何信號連接到引腳時,它可能會返回任何值,這被稱為“浮動”,是完全沒有任何作用的。
您可以使用“上拉”或“下拉”電阻來防止浮動。
將一個上拉電阻連接到您的控制電壓,當沒有其他任何連接時,引腳將讀取高電平信號。將一個下拉電阻接地,引腳將讀取低電平信號。使用任何一個都會為您提供您的開關或按鈕的相反值。
您不需要將這些電阻連接到電路中。它們已經內置在Raspberry Pi中,您可以通過軟件控制它們。
使用軟件控制GPIO引腳
控制GPIO引腳的最簡單方法之一是使用Python中的GPIO Zero 庫。如果您以前寫過Python代碼,這對您來說將會很容易上手。
如果這是您第一次使用Python,您可能需要先學習一些介紹性的教程。如果您不打算學習這些教程,也可以直接使用下面的指令,但是您可能會理解不了?!坝肞ython將枯燥的工作自動化(utomate the Boring Stuff With Python)”的網絡版本是個不錯的選擇,而且是免費的。
GPIO Zero是默認安裝在Raspbia Desktop映像上的。如果您使用的是Raspbian Lite或其他操作系統(tǒng),那么可能需要另行安裝。
讓我們使用它來開啟燈光
現在,讓我們來試試打開LED吧!這么簡單的工作其實不需要使用計算機,但我們將在GPIO引腳中加入Raspberry Pi。
為此,您將需要:
一個帶電源的Raspberry Pi以及一個安裝了Raspbian的SD卡 |
![]() |
一個面包板 |
![]() |
一個GPIO擴展板(可選,但是推薦使用) |
![]() |
一個LED |
![]() |
您還會需要一些通用設備,例如:
? 電阻值在220Ω~1000Ω之間的電阻
? 一個USB鍵盤,或者SSH連接:可以讓您輸入指令的設備
? 跨接電纜或電線
? 一個下推按鈕
連接電源軌
如果您使用的是擴展板,請將其連接到Raspberry Pi和面包板上。然后將3.3V電源引腳連接到穿過面包板底部的正電源軌,并將接地引腳連接到負電源軌。
連接并測試按鈕
現在將您的按鈕添加到面包板的中間。將按鈕的一個引腳連接到一個Raspberry Pi GPIO引腳。我用的是13,因為這是我的幸運數字。
然后,將按鈕對角相對的引腳連接到負電源軌。當您按下此按鈕時,電路將會閉合。
最后,我們需要讓Pi注意這個引腳,所以我們需要打開Python解釋器。在命令行中輸入:
python3
然后在解釋器中輸入:
from gpiozero import Button
如果您收到一條消息說“ImportError”,就檢查一下字母的大小寫是否正確。如果顯示“ModuleNotFoundError”,則需要安裝GPIO Zero。
如果沒有以上情況發(fā)生,那么就可以將引腳指定給按鈕了:
button = Button(13)
這個Button類負責分配上拉電阻?,F在讓我們通過輸入以下指令來測試其是否有效:
while True:
if button.is_pressed:
print(‘Sweet, the button works!’)
break
Python對縮進很敏感,所以一定要對空格嚴加控制。然后再次按下Enter鍵運行循環(huán)代碼。
這個循環(huán)代碼會一直運行,直到有人按下按鈕。這時候按下按鈕,應該會產生一條說明按鈕有效的消息。這就意味著您已經成功構建了一個可以向您的Raspberry Pi發(fā)送消息的簡單電路。太棒了!
如果沒有產生這個結果,請檢查所有連接是否正確,然后重試。
連接并測試LED
LED中的D代表“二極管”,也就是說LED只能往一個方向導通。
您會注意到LED有一個引腳稍長:這將會被連接到正極。在本項目中,正極就是GPIO引腳。我使用的是引腳26,沒有什么特別的原因。
將LED放在面包板上,確保LED的引腳之間在水平方向有間隔,以避免短路?,F在將正極引腳連接到您的GPIO引腳。
LED應與電阻串聯,所以將電阻的一端連接到LED的短引腳上,另一端連接到負電源軌上。電阻沒有方向性,可以與任意端連接。
現在讓我們告訴Raspberry Pi發(fā)生了什么。類型:鏡像 Pi & Breadboard
from gpiozero import LED
led = LED(26)
如果一切連接正確,您將能夠使用以下指令打開和關閉LED:
led.on()
led.off()
使用按鈕控制LED
現在已經完成了連接,并且經檢查一切正常,輸入:
button.when_pressed = led.on
然后按下按鈕。LED應亮起并保持亮起的狀態(tài)。現在輸入:
button.when_released = led.off
再次按下按鈕。松開按鈕后LED應關閉。
恭喜!您已經實現了GPIO引腳的使用!
雖然這些原理看起來很簡單,但是它們可以作為基礎來構建數千個現目,甚至可以構建您自己的項目。請注意安全,謹慎操作,但是最重要的一點是,一定要玩得開心!
DevicePlus 編輯團隊
設備升級版適用于所有熱愛電子和機電一體化的人。
審核編輯黃宇
-
引腳
+關注
關注
16文章
1709瀏覽量
52789 -
GPIO
+關注
關注
16文章
1280瀏覽量
53996 -
Raspberry Pi
+關注
關注
2文章
620瀏覽量
23112
發(fā)布評論請先 登錄
Raspberry Pi GPIO的編號規(guī)范(轉)
基于Amazon?Echo?和?Raspberry?Pi?的自動窗簾控制
Raspberry Pi Pico是什么
Raspberry Pi上的IO引腳編號有幾種方法
一個印有PINOUT的Raspberry Pi pico分線板
用于Raspberry Pi的DIN導軌安裝
帶超頻冷卻孔徑的Raspberry Pi GPIO帽
用于40針Raspberry Pi型號的GPIO分線板
樹莓派GPIO引腳的說明
用于40針Raspberry Pi型號的GPIO分線板

使用Adafruit IO作為MQTT控制Raspberry Pi GPIO的AC設備

如何使用GPIO引腳將按鈕連接到Raspberry Pi

評論