在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

通過RPi.GPIO Python庫使用Raspberry Pi GPIO引腳

王銀喜 ? 來源:hgimtk ? 作者:hgimtk ? 2023-02-25 17:36 ? 次閱讀
這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。在2016年推出GPIO Zero之前,新用戶通常使用另一個Python模塊(RPi.GPIO)來使用GPIO引腳
使用RPi.GPIO需要學(xué)習(xí)更多的相關(guān)知識,但是事實證明花費這些精力是值得的。

為什么不直接使用GPIO Zero?

GPIO Zero并不是作為RPi.GPIO的替代品而創(chuàng)建的。它其實構(gòu)建在RPi.GPIO之上,旨在幫助初學(xué)者能夠盡可能輕松地使用RPi.GPIO。
通過直接使用RPi.GPIO,您可以更好地了解內(nèi)部的運行操作,并且為之后的項目開發(fā)出更精細(xì)的控制功能。
通過GPIO Zero的API您可以對上拉和下拉電阻、高態(tài)動作和低態(tài)動作引腳等進(jìn)行修改。但是如果您過于頻繁的使用它,那么就失去GPIO在簡易性方面的優(yōu)勢了。

使用RPi.GPIO的另一個原因是駭客和制造商們分享了許多使用了RPi.GPIO的很棒的項目。一旦您掌握了這個模塊,就意味著這個領(lǐng)域的大門將會向您敞開!
也許有一天您會想使用諸如C或C++這樣的語言。這些語言更高級一些,但是會提供更多的控制功能以及使硬件的使用更加高效的功能。使用RPi.GPIO無法讓您直接實現(xiàn)這個目的,但是它可以幫助您朝這個方向邁進(jìn)。
目前不用擔(dān)心會消耗過多CPU周期。每個Raspberry Pi的處理能力都遠(yuǎn)遠(yuǎn)超過本項目所需。鏡像:Raspberry Pi。

導(dǎo)入RPi.GPIO庫

導(dǎo)入RPi.GPIO模塊的語法是:
import RPi.GPIO as GPIO
官方文檔和大多數(shù)已發(fā)布的項目都遵循該語法。如果您也使用該語句,可以直接借用他們的代碼。

RPi.GPIO 可讓您選擇引腳編號模式

有兩種對引腳進(jìn)行編號的方法。您可以通過它們在GPIO接頭中的放置位置來描述這些引腳,這種方法稱為“板編號”。
您也可以通過它們連接到Raspberry Pi核心中Broadcom芯片的順序來對其進(jìn)行描述。如果您覺得GPIO引腳編號與其在接頭中的位置無關(guān),可以使用該方法。
您可以使用RPi.GPIO’s setmode函數(shù)來對這兩種編號系統(tǒng)進(jìn)行選擇:
GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
如果在設(shè)置模式之前就分配引腳,那么Python會返回錯誤信息。
我個人更喜歡Broadcom編號模式。因為在這種模式下,哪些引腳是GPIO、接地或電源會更清晰。我還使用了GPIO擴(kuò)展板來構(gòu)建面包板原型,并且在該板上根據(jù)GPIO編號對每個引腳進(jìn)行標(biāo)記。
有人可能覺得板編號模式更容易一些。如果該模式適用于您的項目,那也很好!您可以自行選擇。
在本文的剩余部分,我們將會使用Broadcom編號模式。
如果您使用過解釋器,并且忘記了設(shè)置的是哪種模式,請使用以下指令:
GPIO.getmode()

設(shè)置及使用引腳

設(shè)置編號模式后,使用setup函數(shù)來將引腳分配為輸入或輸出引腳:
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.IN)
對于輸入引腳,您通常需要設(shè)置一個上拉或下拉電阻來防止浮動。您可以用以下方式來設(shè)置這些電阻:
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
要讀取輸入引腳的當(dāng)前狀態(tài),請使用:
GPIO.input(12)
您可以使用output函數(shù)來將輸出引腳設(shè)置為高電平或低電平,如下所示:
GPIO.output(11, True)
GPIO.output(11, False)

為引腳命名

如果您將引腳編號分配給描述性命名的變量,您的代碼將更具可讀性,如下所示:
redLED = 11
button = 12
GPIO.setup(redLED, GPIO.OUT)
GPIO.setup(button, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.output(redLED, True)
GPIO.input(button)
用這種代碼可以更清楚地顯示所執(zhí)行的操作,不是嗎?
您可能覺得即使不使用這些實用標(biāo)簽,項目也會進(jìn)行得很容易,但是最好養(yǎng)成這種習(xí)慣。當(dāng)您需要構(gòu)建更復(fù)雜的項目時,以及暫時中止正在進(jìn)行的項目時,或者其他人查看您的代碼的時候,這個習(xí)慣會給您帶來很大的便利。

完成后清除

如果您保留了對這些引腳的分配設(shè)置,很容易造成意外短路從而燒壞電路板。
當(dāng)腳本運行結(jié)束或者您退出解釋器時,GPIO Zero會自動進(jìn)行重置。在RPi.GPIO中,我們使用以下函數(shù):
GPIO.cleanup()
該清除函數(shù)只會對您在RPi.GPIO中分配的引腳進(jìn)行重置,所以如果有另一個進(jìn)程正在使用其他引腳,則不會受到干擾。
您也可以重置特定的引腳,將這些引腳作為一個參數(shù)傳遞到函數(shù)中:
GPIO.cleanup(redLED)
GPIO.cleanup([redLED, button])

使用以上設(shè)置創(chuàng)建一個簡單的LED序列

對于本項目,您將需要:

一個帶電源的Raspberry Pi以及一個安裝了Raspbian的SD installed
一個面包板
一個GPIO擴(kuò)展板
一個綠色LED, 一個紅色LED, 以及一個黃色LED

您還需要一個可以讓您輸入指令的設(shè)備,例如SSH連接或者USB鍵盤和鼠標(biāo),幾根跨接電纜以及三個阻值在220Ω~1000Ω之間的電阻。

連接我們的紅色LED

首先,將GPIO擴(kuò)展板連接到您的Raspberry Pi GPIO接頭和面包板(如果尚未連接的話)。然后使用跨接電纜將接地引腳連接到面板板底部的負(fù)電源軌。
pYYBAGPzHZeAAGGIAADTzKamKic707.png
現(xiàn)在連接LED。D代表的是二極管,也就是說電流只能沿一個方向通過LED。
您可以識別出應(yīng)該如何連接LED,因為LED的一個引腳比另一個稍長。較長的引腳是陽極,連接到正極,較短的是陰極,連接到負(fù)極。
在這個電路中,我們將把較長的引腳—陽極—連接到GPIO引腳,把較短的引腳—陰極—連接到負(fù)電源軌。
首先將紅色LED放在您的面包板上,距離擴(kuò)展板不遠(yuǎn)。水平放置LED引腳,使陽極更靠近擴(kuò)展板。然后將GPIO引腳(我使用的是引腳13)連接到陽極。
pYYBAGPzHZmAb37dAAFNXxgevxs356.png
現(xiàn)在使用一個電阻來將陰極連接到負(fù)電源軌。使用電阻很重要,否則LED將會使用過大的電流從而燒壞您的Raspberry Pi。
pYYBAGPzHZyAEmXeAAFPbVWndEs728.png

測試紅色LED

首先啟動Python解釋器,輸入:
python3
讓我們加載RPi.GPIO,并設(shè)置引腳編號模式,請記得Python對大小寫很敏感。
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
還記得之前為引腳編號提供實用名稱的建議嗎?在這里我們也這樣做。
redLED = 13
現(xiàn)在,將該引腳分配為輸出引腳,輸入以下指令:
GPIO.setup(redLED, GPIO.OUT)
如果一切連接正確,您將能夠使用以下指令來打開和關(guān)閉LED:
GPIO.output(redLED, True)
GPIO.output(redLED, False)
如果沒有正常工作,請檢查LED的連接方向是否正確,以及所有連接是否正確。也許是因為電阻線接觸不良造成電路沒有接通。

連接并測試黃色和綠色LED

在紅色LED的右側(cè)放置黃色LED。以及,再次將引腳水平放置,并使陽極更靠近擴(kuò)展板。
poYBAGPzHZ-Af5v2AAEWAxFZYSY606.png
然后將跨接電纜從GPIO引腳(我使用的是引腳16)連接到黃色LED的陽極。像之前所做的那樣,使用電阻將陰極連接到負(fù)軌。
現(xiàn)在為該引腳命名,將其分配為輸出引腳,并且測試是否可以打開和關(guān)閉LED:
yellowLED = 16
GPIO.setup(yellowLED, GPIO.OUT)
GPIO.output(yellowLED, True)
GPIO.output(yellowLED, False)
一切正常嗎?如果不是的話,請檢查LED的方向是否正確,以及所有的連接是否正確。
接下來是綠色LED。
poYBAGPzHaKAanflAAEk3uSmn1s066.png
將它并排放置在面包板上,引腳以一定的間隔水平放置,陽極靠近擴(kuò)展板。使用跨接線將陽極連接到GPIO引腳(我使用的是引腳21),然后使用一個電阻將陰極連接到負(fù)軌,接著輸入一些Python代碼:
greenLED = 21
GPIO.setup(greenLED, GPIO.OUT)
GPIO.output(greenLED, True)
GPIO.output(greenLED, False)
就是這樣!

編寫程序使LED按照順序點亮

為了防止運行得太快而看不到點亮過程,我們將會使用sleep指令,輸入:
from time import sleep
現(xiàn)在,讓我們將所有引腳編號放入一個可以循環(huán)遍歷的元組中:
LEDs = (redLED, yellowLED, greenLED)
最后,編寫一個for循環(huán)語句來遍歷這個元組,從而打開和關(guān)閉LED。請記住Python對縮進(jìn)很敏感!
for i in range(100):
GPIO.output(LEDs[i % 3], True)
sleep(2)
GPIO.output(LEDs[i % 3], False)
再次按下回車鍵運行該循環(huán)。
如果一切正常,您將會看到LED按照順序一個接一個亮起2秒鐘。這需要花費幾分鐘來運行,您也可以按ctrl+C來結(jié)束該程序。
如果您不明白該循環(huán)的工作原理,以下鏈接可能會有所幫助:
? for 循環(huán)
? range 函數(shù)
? 取模運算(%)
pYYBAGPzHaSAZTDTAACj2KfHwaI748.jpg

清除

完成之后不要忘記清除引腳設(shè)置!輸入:
GPIO.cleanup()
您可以按ctrl+D退出解釋器。鏡像:Finished Product

這是簡單而強(qiáng)大的產(chǎn)品

您可以使用這些基本原理來完成很多事情,尤其是在加入輸入引腳之后。請繼續(xù)關(guān)注后續(xù)工作!

審核編輯:湯梓紅

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

    關(guān)注

    16

    文章

    1276

    瀏覽量

    53637
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

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

    關(guān)注

    2

    文章

    620

    瀏覽量

    22944
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發(fā)板上使用IOTGPIO中斷模式,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個任務(wù),通過配置GPIO
    的頭像 發(fā)表于 04-21 10:39 ?373次閱讀
    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>中斷

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO外設(shè)

    1、案例簡介本案例主要是如何在小凌派-RK2206開發(fā)板上使用IOTGPIO接口,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個任務(wù),通過配置GPIO
    的頭像 發(fā)表于 04-11 15:36 ?897次閱讀
    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>外設(shè)

    GPIO使用教程 GPIO接口應(yīng)用

    GPIO(General-Purpose Input/Output,通用輸入/輸出)接口是電子設(shè)備中的一個重要組成部分,主要用于控制和讀取設(shè)備的數(shù)字信號。它通過簡單的高(1)或低(0)電平來與系統(tǒng)
    的頭像 發(fā)表于 01-31 10:10 ?3005次閱讀

    AN-951: 使用SigmaDSP內(nèi)置GPIO引腳進(jìn)行硬件控制

    電子發(fā)燒友網(wǎng)站提供《AN-951: 使用SigmaDSP內(nèi)置GPIO引腳進(jìn)行硬件控制.pdf》資料免費下載
    發(fā)表于 01-15 15:40 ?0次下載
    AN-951: 使用SigmaDSP內(nèi)置<b class='flag-5'>GPIO</b><b class='flag-5'>引腳</b>進(jìn)行硬件控制

    GPIO模塊與其他外設(shè)的連接方法

    在嵌入式系統(tǒng)設(shè)計中,GPIO模塊是實現(xiàn)設(shè)備與外部世界交互的關(guān)鍵接口。它們提供了一種靈活的方式來控制和監(jiān)測外部設(shè)備。 GPIO模塊的基本概念 GPIO模塊由一組引腳組成,每個
    的頭像 發(fā)表于 01-09 09:48 ?870次閱讀

    GPIO錯誤排查與解決

    在嵌入式系統(tǒng)和微控制器編程中,通用輸入輸出(GPIO)是最常見的接口之一。然而,在使用GPIO時,我們可能會遇到各種錯誤。 1. 理解GPIO GPIO是微控制器上的一組
    的頭像 發(fā)表于 01-09 09:46 ?2065次閱讀

    GPIO在樹莓派中的應(yīng)用

    樹莓派(Raspberry Pi)是一款由英國樹莓派基金會開發(fā)的信用卡大小的單板計算機(jī),它具有強(qiáng)大的功能和靈活性,可以用于各種項目和應(yīng)用。通用輸入輸出(GPIO)是樹莓派的一個重要特性,它允許用戶
    的頭像 發(fā)表于 01-09 09:41 ?739次閱讀

    如何配置GPIO引腳

    在嵌入式系統(tǒng)設(shè)計中,GPIO(通用輸入/輸出)引腳是連接微控制器與外部世界的重要橋梁。它們可以被配置為輸入或輸出模式,用于讀取傳感器數(shù)據(jù)、控制LED燈、驅(qū)動電機(jī)等。 GPIO引腳的基本
    的頭像 發(fā)表于 01-09 09:39 ?1077次閱讀

    樹莓派開發(fā)的最佳編程語言選擇

    應(yīng)用。 1. Python 優(yōu)勢: 易學(xué)易用: Python以其簡潔的語法和強(qiáng)大的功能而聞名,非常適合初學(xué)者。 廣泛的支持: Python擁有大量的
    的頭像 發(fā)表于 11-11 11:34 ?1861次閱讀

    STM32 GPIO的八種工作模式

    GPIO (general purpose input output)是通用輸入輸出端口的簡稱,簡單來說就是軟件可控制的引腳,STM32芯片的GPIO引腳與外部設(shè)備連接起來,從而實現(xiàn)與
    的頭像 發(fā)表于 11-06 09:40 ?1852次閱讀
    STM32 <b class='flag-5'>GPIO</b>的八種工作模式

    SOC GPIO操作

    sapphire Soc提供了兩個GPIO組每組有4個GPIO,定義為GPIO[3:0],其中只有GPIO[1:0]可以支持中斷。中斷在程序中打開了
    的頭像 發(fā)表于 11-01 11:06 ?435次閱讀

    樹莓派gpio有什么用,樹莓派gpio接口及編程方法

    一、樹莓派GPIO的用途 樹莓派(Raspberry Pi)是一款小巧、功能強(qiáng)大的單板計算機(jī),廣泛應(yīng)用于編程教育、物聯(lián)網(wǎng)項目、家庭媒體中心等領(lǐng)域。GPIO(General Purpos
    的頭像 發(fā)表于 10-22 18:09 ?2509次閱讀

    gpio接口是干什么的 gpio四種輸入輸出模式怎么選擇

    GPIO接口的作用 GPIO(General Purpose Input/Output)接口,即通用輸入輸出接口,是一種用于連接和控制各種外部設(shè)備的數(shù)字接口。它由一組引腳組成,可以通過
    的頭像 發(fā)表于 10-06 16:07 ?7287次閱讀

    GPIO引腳提供ESD保護(hù)

    電子發(fā)燒友網(wǎng)站提供《為GPIO引腳提供ESD保護(hù).pdf》資料免費下載
    發(fā)表于 08-28 11:01 ?0次下載
    為<b class='flag-5'>GPIO</b><b class='flag-5'>引腳</b>提供ESD保護(hù)

    樹莓派5,Raspberry Pi 5 評測

    、C、JavaScript、BASIC或其他語言編寫GPIO代碼。 我們通常使用Python模塊RPi.GPIOGPIO Zero來與GPIO
    發(fā)表于 06-19 14:51
    主站蜘蛛池模板: 亚洲va久久久噜噜噜久久 | 亚洲va老文色欧美黄大片人人 | 日本亚洲成人 | 偷操| 很黄很污的视频网站 | www天堂网 | 久久精品2020 | 中文字幕乱码人成乱码在线视频 | 四虎永久免费观看 | 日韩大尺度视频 | free chinese 国产精品 | 停停色| 午夜禁片| www色综合| 日本精品一在线观看视频 | 午夜亚洲视频 | 怡红院日本 | 成人网在线 | 欧美福利在线播放 | 欧美一区二区不卡视频 | 91在线网址| 日本一卡精品视频免费 | 欧美三级视频网 | 欧美成人一区亚洲一区 | 亚洲国产视频网 | 色天使色护士 在线视频观看 | 视频午夜 | 欧美行爱| 国产自在自线午夜精品视频 | 国产片一级aaa毛片视频 | 亚洲欧美综合一区二区三区四区 | 夜夜夜精品视频免费 | 自拍中文字幕 | 超大乳抖乳露双乳视频 | 91国内在线观看 | 成年人电影黄色 | 天天爱天天做天天爽天天躁 | www.久色| 美女扒开尿口让男人桶 | 午夜视频在线观看免费高清 | 日本69sex护士wwxx |