如何將按鈕與樹(shù)莓派pico連接起來(lái)
在我之前的教程“Raspberry Pi Pico入門”中,我一步一步地教你如何開(kāi)始使用Raspberry Pi Pico,編程Pico板需要哪些軟件或IDE,以及最重要的部分,即如何在Pico上安裝Micro Python。我還向您展示了如何用樹(shù)莓派pico閃爍板上和外部LED。在今天的教程中,我將教你如何將按鈕與樹(shù)莓派pico連接起來(lái)。
仔細(xì)理解本教程后,您將能夠:
?接口按鈕與樹(shù)莓派pico,并可以控制其他設(shè)備與它。
?如何使用樹(shù)莓派pico GPIO引腳作為輸入,以及如何讀取任何GPIO引腳的狀態(tài)(高或低)。
?理解為什么需要中斷。
?用按鈕打開(kāi)和關(guān)閉板載或外部LED。
?使用覆盆子pi pico的內(nèi)部上拉和下拉電阻
要求:
硬件需求:
?樹(shù)莓派
?面包板
?按鈕
?電阻(330歐姆/0.25W, 10K歐姆/0.25W)
?跳線(M-to-M)
?LED(尺寸= 5mm,顏色=紅色)
軟件要求:
?Thonny(Python IDE for beginners)
理論:
按鈕:
按鈕是一種機(jī)械開(kāi)關(guān),用于切斷或維持電路中的電流流動(dòng)。按鈕上有兩個(gè)金屬端子。在正常狀態(tài)下(當(dāng)沒(méi)有壓力施加在按鈕上時(shí)),這些金屬觸點(diǎn)不會(huì)相互接觸。按鈕的這種狀態(tài)稱為“OFF”。當(dāng)我們按下按鈕時(shí),這些終端就會(huì)接觸或簡(jiǎn)單地相互接觸?,F(xiàn)在,兩個(gè)終端處于物理接觸狀態(tài)的按鈕被稱為“開(kāi)”。按鈕有時(shí)也被稱為按鈕,因?yàn)槟惚仨毎聪滤鼇?lái)啟動(dòng)電流。電路中的按鈕用給定的符號(hào)表示。
步驟1:制作簡(jiǎn)單的測(cè)試電路,實(shí)際了解按鈕的操作
當(dāng)你用手指按下按鈕時(shí),兩個(gè)金屬端子相互接觸,電流開(kāi)始流動(dòng),LED開(kāi)始發(fā)光。一旦你釋放按鈕兩個(gè)金屬端子打破物理接觸和LED停止發(fā)光。電路中使用了一個(gè)330歐姆的電阻來(lái)限制LED中的電流。
步驟2:連接一個(gè)按鈕到樹(shù)莓派Pico
將樹(shù)莓派pico板固定在全尺寸的面包板上,然后將按鈕固定在相同的面包板上,如下所示。
現(xiàn)在將樹(shù)莓派pico的pin-13(GND)引腳連接到面包板的-ve(藍(lán)色)導(dǎo)軌。將按鈕的左端連接到面包板的-ve導(dǎo)軌上,右端連接到pico的Pin-19(GPIO-14)上,如下圖所示。
步驟3:編寫一個(gè)微python程序來(lái)讀取按鈕的狀態(tài)
在thony中打開(kāi)一個(gè)新腳本,輸入給定的程序,然后保存腳本。在程序的第一行中,您必須導(dǎo)入機(jī)器模塊以使用GPIO引腳和時(shí)間模塊來(lái)創(chuàng)建程序中的延遲?,F(xiàn)在為pin類創(chuàng)建一個(gè)按鈕對(duì)象。這里需要設(shè)置pin名。14號(hào)表示GPIO Pin-14和pin。ini用于配置引腳模式為輸入。要配置引腳作為輸出,您應(yīng)該使用pin。OUT而不是Pin.IN.Pin。PULL_UP用于激活內(nèi)部上拉電阻。你也可以使用pin。PULL_DOWN激活內(nèi)部下拉。創(chuàng)建一個(gè)反復(fù)運(yùn)行的無(wú)限循環(huán),以便您可以隨時(shí)讀取按鈕的狀態(tài)。要?jiǎng)?chuàng)建無(wú)限循環(huán),使用while True。現(xiàn)在您必須讀取按鈕的狀態(tài),以便使用button.value(),此函數(shù)返回1(True),如果按鈕引腳高(3.3 V)或0(False),如果按鈕引腳低(0 V)。您需要檢查按鈕是否按下,以便使用if(控制語(yǔ)句)和==(比較操作符)。如果此條件為真,則必須發(fā)送消息“Button is pressed”。使用print()函數(shù)顯示消息。如果條件不為真,那么你必須打印消息“按鈕未按下”。在最后一行中,您必須為每個(gè)測(cè)試提供一些延遲,因此必須使用time.sleep()函數(shù)?,F(xiàn)在程序完成了,如下所示:
現(xiàn)在單擊run來(lái)運(yùn)行程序。查看shell中的輸出,然后按下按鈕。當(dāng)您按下按鈕時(shí),您將在shell中看到“button is pressed”消息。
步驟4:使用按鈕控制外部LED。
在步驟3中,您已經(jīng)學(xué)習(xí)了如何讀取按鈕狀態(tài)。在此步驟中,您必須使用按鈕和pico控制外部LED,因此您必須修改電路,如下所示:
在步驟3中創(chuàng)建的代碼中添加更多行?,F(xiàn)在你的代碼看起來(lái)如下所示:
點(diǎn)擊運(yùn)行選項(xiàng)。你會(huì)看到LED不發(fā)光,現(xiàn)在按下按鈕,一旦你按下按鈕,LED開(kāi)始發(fā)光,并持續(xù)發(fā)光,直到你不釋放按鈕。
步驟5:用按鈕切換LED
世界爭(zhēng)斗意味著改變國(guó)家。在這里,你必須用按鈕來(lái)切換LED。編寫下面給出的程序,用你的按鈕切換LED:
運(yùn)行上面的程序。你會(huì)看到,當(dāng)你按下按鈕時(shí),LED的狀態(tài)會(huì)發(fā)生變化,即如果它是關(guān)閉的,那么它就會(huì)打開(kāi),或者如果它是打開(kāi)的,那么它就會(huì)關(guān)閉。如果你一直按下按鈕,LED會(huì)在0.5秒后切換,但這里你只需要在按一次時(shí)切換LED,無(wú)論你一直按下按鈕,LED都不應(yīng)該切換。如果你按下按鈕的速度更快,led應(yīng)該切換得更快,但由于使用延遲,這是不可能的。這個(gè)問(wèn)題的解決方案是您應(yīng)該使用中斷。我不在這里解釋中斷,因?yàn)檫@是另一個(gè)教程的主題。
本文編譯自hackster.io





