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





