0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Raspberry Pi GPIO引腳介紹

從未擁有 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-02-24 18:08 ? 次閱讀

這篇文章來源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。近年來,Raspberry Pi因其可以用作可用于媒體和復(fù)古視頻游戲的廉價(jià)、兼容的Linux機(jī)器以及網(wǎng)絡(luò)設(shè)備而備受喜愛。多年來,一些業(yè)余愛好者一直以這些方式來使用他們的Pi,但是有些人并不清楚設(shè)備側(cè)面的引腳到底是做什么的。
其實(shí),正是這些引腳發(fā)揮著Pi的真實(shí)功用。它們可以控制家居設(shè)備、機(jī)器、新的發(fā)明,甚至機(jī)器人。那么,為什么這么多人都對(duì)這些引腳不甚了解呢?
poYBAGPzHaiAP4AwAABElLQLcZM408.jpg

這些引腳的實(shí)際作用是什么?

這40個(gè)(或26個(gè),取決于您的Pi型號(hào))引腳是所謂的“GPIO接口”的一部分。在這些接口中,有四種主要的引腳:
? 電源: 提供3.3V和5V的直流電源
? 接地(GND): 連接到地端,以閉合電路
? DNC: 代表“不連接”,所以可以忽略
? GPIO: 可以設(shè)置為發(fā)送或接收控制電壓
GPIO代表“通用輸入/輸出”,正是這些引腳讓Raspberry Pi發(fā)揮了其功效。因?yàn)檫@些引腳沒有特定的功能,所以可以設(shè)置為某個(gè)專用功能,例如控制信號(hào)。
poYBAGPzHaqAcWtMAAA4-tn6FKE807.jpg
設(shè)置為輸出的GPIO引腳可以提供3.3V(高電平信號(hào))或0V(低電平信號(hào))的電壓。當(dāng)設(shè)置為輸入時(shí),該引腳可以讀取相同數(shù)值的電壓。

GPIO引腳不能提供過多電源

需要謹(jǐn)記的很重要的一點(diǎn)是GPIO引腳(以及3.3V電源引腳)是用于控制其他組件并與之通信的。
您可以從組合的3.3V引腳中獲取約51mA的電流,但是在連接的時(shí)候需要小心;如果您試圖讓電路從這些3.3V引腳獲取過大的電流,這可能會(huì)燒壞整個(gè)電路板。
而5V電源引腳則可以為您獲取電源提供的所有電流,其中要減去Raspberry Pi本身使用的電源。

將GPIO引腳連接到面包板

當(dāng)您第一次使用這些GPIO引腳時(shí),最好使用一個(gè)面包板。這樣的話可以在不進(jìn)行焊接的情況下構(gòu)建電路并對(duì)其進(jìn)行修改。
如果您以前從來沒有使用過面包板,請(qǐng)通過以下視頻了解其基礎(chǔ)知識(shí):

GPIO擴(kuò)展板也會(huì)起到很大的作用,可以通過引線將其連接到GPIO接口,并將引腳直接放置在面包板上,這些引腳帶有明確的標(biāo)記。
不過這需要一些空間:面包板每側(cè)需要20行。一個(gè)小的板子幾乎就只有20行!有多余的40行左右的面包板可以為初學(xué)者提供充足的空間。

具有特殊用途的GPIO引腳

每個(gè)GPIO引腳都可以設(shè)置為用于發(fā)送和接收高電平和低電平信號(hào)。有些引腳也會(huì)有一些特殊用途。
我們不會(huì)在這里進(jìn)行深入探究,只需要了解大概就好。

硬件 PWM

GPIO引腳輸出3.3V或0V:一個(gè)高電平信號(hào)或低電平信號(hào)。脈寬調(diào)制或PWM,是一種通過快速打開和關(guān)閉引腳來模擬介于兩者之間電壓的方法。
這不是真正的模擬信號(hào),但是可以用于調(diào)暗LED光線之類的功能。它的閃爍速度要大于您的視覺敏感頻率,所以您看到的只是燈光變暗了而已。
您可以使用低通濾波器將PWM平滑為模擬信號(hào)。如果您對(duì)音質(zhì)不是很挑剔的話,可將其用于模擬音頻,比如用于門鈴或者玩具就不錯(cuò)。
您可以使用軟件通過任意GPIO引腳生成PWM信號(hào),但是操作系統(tǒng)會(huì)將其與其他任務(wù)并行處理,所以該信號(hào)可能會(huì)發(fā)生振動(dòng)。
GPIO引腳18和19上有可用的硬件PWM。硬件PWM和耳機(jī)插孔使用相同的電路,所以不能同時(shí)使用。

串行總線引腳

當(dāng)您查看下面的圖表時(shí)(被稱作Raspberry Pi“引腳圖”),您會(huì)看到一些引腳是I2C、 SPI以及UART串行。這些是可用于與其他組件之間進(jìn)行數(shù)據(jù)發(fā)送和接收的串行總線協(xié)議。
pYYBAGPzHa6AEOwiAADLXdfKrGU345.png
您可以將這些與模擬轉(zhuǎn)換器DAC結(jié)合使用,以輸出模擬信號(hào)。如果想要高質(zhì)量的音頻或者想要控制許多組件,這種方式可能比使用PWM方式更可取。

上拉和下拉電阻

通常,您會(huì)希望Raspberry Pi GPIO引腳可以讀取按鈕或者開關(guān)的位置。這通過接線可以很容易實(shí)現(xiàn),因?yàn)榻泳€之后,被連接于控制電壓以讀取高電平信號(hào)或接地以讀取低電平信號(hào)的電路將會(huì)閉合。
問題是當(dāng)這個(gè)電路斷路而沒有任何信號(hào)連接到引腳時(shí),它可能會(huì)返回任何值,這被稱為“浮動(dòng)”,是完全沒有任何作用的。
您可以使用“上拉”或“下拉”電阻來防止浮動(dòng)。
將一個(gè)上拉電阻連接到您的控制電壓,當(dāng)沒有其他任何連接時(shí),引腳將讀取高電平信號(hào)。將一個(gè)下拉電阻接地,引腳將讀取低電平信號(hào)。使用任何一個(gè)都會(huì)為您提供您的開關(guān)或按鈕的相反值。
您不需要將這些電阻連接到電路中。它們已經(jīng)內(nèi)置在Raspberry Pi中,您可以通過軟件控制它們。

使用軟件控制GPIO引腳

控制GPIO引腳的最簡(jiǎn)單方法之一是使用Python中的GPIO Zero 庫(kù)。如果您以前寫過Python代碼,這對(duì)您來說將會(huì)很容易上手。
如果這是您第一次使用Python,您可能需要先學(xué)習(xí)一些介紹性的教程。如果您不打算學(xué)習(xí)這些教程,也可以直接使用下面的指令,但是您可能會(huì)理解不了?!坝肞ython將枯燥的工作自動(dòng)化(utomate the Boring Stuff With Python)”的網(wǎng)絡(luò)版本是個(gè)不錯(cuò)的選擇,而且是免費(fèi)的。
GPIO Zero是默認(rèn)安裝在Raspbia Desktop映像上的。如果您使用的是Raspbian Lite或其他操作系統(tǒng),那么可能需要另行安裝。

讓我們使用它來開啟燈光

現(xiàn)在,讓我們來試試打開LED吧!這么簡(jiǎn)單的工作其實(shí)不需要使用計(jì)算機(jī),但我們將在GPIO引腳中加入Raspberry Pi。
為此,您將需要:

一個(gè)帶電源的Raspberry Pi以及一個(gè)安裝了Raspbian的SD pYYBAGPzHTCAPeTzAAAZXrMS0tI642.jpg
一個(gè)面包板 poYBAGPy0t6AI3TuAAAWaY2q8tc733.jpg
一個(gè)GPIO擴(kuò)展板(可選,但是推薦使用) poYBAGPzHXeARu3AAAApSEMweUA937.jpg
一個(gè)LED pYYBAGPzHbeAW1I7AAALTaOKUUs504.jpg

您還會(huì)需要一些通用設(shè)備,例如:
? 電阻值在220Ω~1000Ω之間的電阻
? 一個(gè)USB鍵盤,或者SSH連接:可以讓您輸入指令的設(shè)備
? 跨接電纜或電線
? 一個(gè)下推按鈕

連接電源軌

如果您使用的是擴(kuò)展板,請(qǐng)將其連接到Raspberry Pi和面包板上。然后將3.3V電源引腳連接到穿過面包板底部的正電源軌,并將接地引腳連接到負(fù)電源軌。

連接并測(cè)試按鈕

現(xiàn)在將您的按鈕添加到面包板的中間。將按鈕的一個(gè)引腳連接到一個(gè)Raspberry Pi GPIO引腳。我用的是13,因?yàn)檫@是我的幸運(yùn)數(shù)字。
然后,將按鈕對(duì)角相對(duì)的引腳連接到負(fù)電源軌。當(dāng)您按下此按鈕時(shí),電路將會(huì)閉合。
最后,我們需要讓Pi注意這個(gè)引腳,所以我們需要打開Python解釋器。在命令行中輸入:
python3
然后在解釋器中輸入:
from gpiozero import Button
如果您收到一條消息說“ImportError”,就檢查一下字母的大小寫是否正確。如果顯示“ModuleNotFoundError”,則需要安裝GPIO Zero。
如果沒有以上情況發(fā)生,那么就可以將引腳指定給按鈕了:
button = Button(13)
這個(gè)Button類負(fù)責(zé)分配上拉電阻。現(xiàn)在讓我們通過輸入以下指令來測(cè)試其是否有效:
while True:
if button.is_pressed:
print(‘Sweet, the button works!’)
break
Python對(duì)縮進(jìn)很敏感,所以一定要對(duì)空格嚴(yán)加控制。然后再次按下Enter鍵運(yùn)行循環(huán)代碼。
這個(gè)循環(huán)代碼會(huì)一直運(yùn)行,直到有人按下按鈕。這時(shí)候按下按鈕,應(yīng)該會(huì)產(chǎn)生一條說明按鈕有效的消息。這就意味著您已經(jīng)成功構(gòu)建了一個(gè)可以向您的Raspberry Pi發(fā)送消息的簡(jiǎn)單電路。太棒了!
如果沒有產(chǎn)生這個(gè)結(jié)果,請(qǐng)檢查所有連接是否正確,然后重試。

連接并測(cè)試LED

LED中的D代表“二極管”,也就是說LED只能往一個(gè)方向?qū)ā?br /> 您會(huì)注意到LED有一個(gè)引腳稍長(zhǎng):這將會(huì)被連接到正極。在本項(xiàng)目中,正極就是GPIO引腳。我使用的是引腳26,沒有什么特別的原因。
將LED放在面包板上,確保LED的引腳之間在水平方向有間隔,以避免短路?,F(xiàn)在將正極引腳連接到您的GPIO引腳。
LED應(yīng)與電阻串聯(lián),所以將電阻的一端連接到LED的短引腳上,另一端連接到負(fù)電源軌上。電阻沒有方向性,可以與任意端連接。
poYBAGPzHbqAMAjRAAAwijXJVpw825.jpg
現(xiàn)在讓我們告訴Raspberry Pi發(fā)生了什么。類型:鏡像 Pi & Breadboard
from gpiozero import LED
led = LED(26)
如果一切連接正確,您將能夠使用以下指令打開和關(guān)閉LED:
led.on()
led.off()

使用按鈕控制LED

現(xiàn)在已經(jīng)完成了連接,并且經(jīng)檢查一切正常,輸入:
button.when_pressed = led.on
然后按下按鈕。LED應(yīng)亮起并保持亮起的狀態(tài)?,F(xiàn)在輸入:
button.when_released = led.off
再次按下按鈕。松開按鈕后LED應(yīng)關(guān)閉。

恭喜!您已經(jīng)實(shí)現(xiàn)了GPIO引腳的使用!

雖然這些原理看起來很簡(jiǎn)單,但是它們可以作為基礎(chǔ)來構(gòu)建數(shù)千個(gè)現(xiàn)目,甚至可以構(gòu)建您自己的項(xiàng)目。請(qǐng)注意安全,謹(jǐn)慎操作,但是最重要的一點(diǎn)是,一定要玩得開心!

pYYBAGPbhjqAbi1JAAAGd6_rQT0867.png

DevicePlus 編輯團(tuán)隊(duì)

設(shè)備升級(jí)版適用于所有熱愛電子和機(jī)電一體化的人。


審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1164

    瀏覽量

    50053
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1184

    瀏覽量

    51752
  • Raspberry Pi
    +關(guān)注

    關(guān)注

    1

    文章

    553

    瀏覽量

    22138
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Raspberry Pi GPIO的編號(hào)規(guī)范(轉(zhuǎn))

    本帖最后由 江口kk 于 2014-8-12 22:45 編輯 Raspberry Pi GPIO的編號(hào)規(guī)范(轉(zhuǎn))樹莓派和普通電腦不一樣的地方在于它還帶了17個(gè)可編程的GPIO
    發(fā)表于 08-09 19:39

    基于Amazon?Echo?和?Raspberry?Pi?的自動(dòng)窗簾控制

    的基極連接到 Raspberry Pi。我連接到物理引腳11,15和22號(hào),映射到BCM格式的GPIO引腳17,22和25,更多關(guān)于物理和邏
    發(fā)表于 08-23 16:04

    Raspberry Pi Pico是什么

    Waveshare給您介紹一款樹莓派家族的新成員,Raspberry Pi Pico 是一款低成本,高性能的微控制器開發(fā)板,具有靈活數(shù)字接口。硬件上,采用Raspberry
    發(fā)表于 07-14 07:02

    Raspberry Pi上的IO引腳編號(hào)有幾種方法

    一. 導(dǎo)入RPI.GPIOimport RPi.GPIO as GPIO二. 指定引腳編號(hào)方式RPi.GPIO中的Raspberry
    發(fā)表于 02-17 06:33

    一個(gè)印有PINOUT的Raspberry Pi pico分線板

    描述Raspberry Pi Pico 分線板(GPIO 擴(kuò)展)方面:60 毫米 x 60 毫米特征:緊湊型設(shè)計(jì)4x M2 螺絲安裝座2.54mm間距焊盤2.54mm 間距排針兼容用于外圍設(shè)備的額外
    發(fā)表于 07-27 06:33

    用于Raspberry Pi的DIN導(dǎo)軌安裝

    設(shè)計(jì)允許 DINPi 板反向或倒置使用而不會(huì)出現(xiàn)問題。鏡像引腳(見下文)允許使用直角接頭和插座將多個(gè)板連接在一起,也可用于倒置安裝 Raspberry Pi,同時(shí)保持正確的 GPIO
    發(fā)表于 08-26 07:55

    帶超頻冷卻孔徑的Raspberry Pi GPIO

    描述Raspberry Pi GPIO 帽,帶超頻冷卻孔徑這是一個(gè) Raspberry Pi 帽子,它允許
    發(fā)表于 09-12 06:14

    用于40針Raspberry Pi型號(hào)的GPIO分線板

    描述Raspberry Pi 40 針 GPIO 擴(kuò)展器,帶 BCM 編號(hào)用于 40 針 Raspberry Pi 型號(hào)的
    發(fā)表于 09-13 07:40

    Raspberry Pi 3 官方套件入門指南

    Raspberry Pi 3套件介紹Raspberry Pi 3套件安裝Raspberry
    發(fā)表于 10-09 07:53

    樹莓派GPIO引腳的說明

    Raspberry Pi有多種使用SPI的設(shè)備和擴(kuò)展HAT,它可以為您的項(xiàng)目提供比常規(guī)GPIO引腳所能承受的硬件更多的硬件。但是,它確實(shí)需要大量的布線才能運(yùn)行。
    的頭像 發(fā)表于 12-02 10:37 ?3.1w次閱讀

    Raspberry Pi GPIO帽開源分享

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi GPIO帽開源分享.zip》資料免費(fèi)下載
    發(fā)表于 08-18 11:01 ?2次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b>帽開源分享

    用于40針Raspberry Pi型號(hào)的GPIO分線板

    電子發(fā)燒友網(wǎng)站提供《用于40針Raspberry Pi型號(hào)的GPIO分線板.zip》資料免費(fèi)下載
    發(fā)表于 08-19 09:35 ?2次下載
    用于40針<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>型號(hào)的<b class='flag-5'>GPIO</b>分線板

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

    在本教程中,我們將使用 Adafruit IO 作為 MQTT 代理來控制連接到 Raspberry Pi GPIO 的 AC 設(shè)備。
    的頭像 發(fā)表于 09-01 16:30 ?2496次閱讀
    使用Adafruit IO作為MQTT控制<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b>的AC設(shè)備

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

    電子發(fā)燒友網(wǎng)站提供《如何使用GPIO引腳將按鈕連接到Raspberry Pi.zip》資料免費(fèi)下載
    發(fā)表于 12-23 17:04 ?0次下載
    如何使用<b class='flag-5'>GPIO</b><b class='flag-5'>引腳</b>將按鈕連接到<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>

    通過RPi.GPIO Python庫(kù)使用Raspberry Pi GPIO引腳

    在2016年推出GPIO Zero之前,新用戶通常使用另一個(gè)Python模塊(RPi.GPIO)來使用GPIO引腳。
    的頭像 發(fā)表于 02-25 17:36 ?2635次閱讀
    通過RPi.<b class='flag-5'>GPIO</b> Python庫(kù)使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>GPIO</b><b class='flag-5'>引腳</b>