超聲波傳感器與樹莓派Pico W接口使用Arduino IDE
掃描二維碼
隨時(shí)隨地手機(jī)看文章
大家好,在這個(gè)項(xiàng)目中,我們將學(xué)習(xí)如何使用Arduino IDE將超聲波傳感器與Raspberry Pi Pico W連接起來,該IDE結(jié)合了Pico W微控制器板的功能以及Arduino開發(fā)環(huán)境提供的易于編程的功能。使用Arduino IDE提供了一種使用C/ c++編程開發(fā)板的直接方法。
這個(gè)項(xiàng)目讓您了解使用超聲波傳感器測(cè)量距離,超聲波傳感器可用于根據(jù)檢測(cè)到的距離執(zhí)行各種操作。通過利用Raspberry Pi Pico W的功能和Arduino IDE的簡(jiǎn)單性,您可以創(chuàng)建一系列應(yīng)用程序,例如距離監(jiān)控,對(duì)象檢測(cè)和避障系統(tǒng)。讓我們來探討一下如何設(shè)置和編程這個(gè)項(xiàng)目,以釋放它在應(yīng)用程序中的潛力。
通過之前的教程了解更多關(guān)于樹莓派Pico W的信息:
?使用Arduino IDE將OLED顯示器與Raspberry Pi Pico W接口
?使用Arduino IDE將伺服電機(jī)與Raspberry Pi Pico W接口
?使用樹莓派Pico W構(gòu)建您自己的氣象站
?使用基于樹莓派Pico W的web服務(wù)器控制LED
組件的要求
?超聲波傳感器模塊
?樹莓派Pico W板
?跳線和面包板
?超聲波傳感器模塊
超聲波傳感器的工作原理是利用聲波計(jì)算物體的距離,使其成為一種有效的距離測(cè)量傳感器。它由兩個(gè)超聲波換能器組成,其中一個(gè)作為發(fā)射器,發(fā)射高頻超聲波信號(hào)。另一個(gè)換能器充當(dāng)接收器,檢測(cè)其路徑上任何物體反射的回波信號(hào)。超聲波傳感器具有成本效益,接口簡(jiǎn)單,功耗低的特點(diǎn)。它們也可以用來測(cè)量水深,因?yàn)槁暡梢栽谒袀鞑ァ?
測(cè)量距離的范圍約為2cm ~ 400cm。工作的基本原理是:
觸發(fā)引腳應(yīng)該有至少10us的高電平信號(hào)。
模塊通過發(fā)射器自動(dòng)發(fā)送8個(gè)40khz頻率信號(hào),當(dāng)脈沖發(fā)送時(shí),回聲引腳就會(huì)變高,當(dāng)脈沖接收時(shí),回聲引腳就會(huì)變低。
如果信號(hào)返回,則回波引腳的高電平時(shí)間是從發(fā)送到返回超聲波脈沖的持續(xù)時(shí)間。
距離計(jì)算:由控制器IC測(cè)量波傳播距離所花費(fèi)的時(shí)間,因此波傳播的距離是用聲速(340m/s)乘以波的時(shí)間長(zhǎng)度來計(jì)算的。波傳播的總距離的一半是物體到傳感器的實(shí)際距離。
超聲波傳感器模塊輸出
超聲波傳感器的連接有四個(gè)端子:
VCC(電源):該引腳連接電源,通常為5V。它為超聲波傳感器的工作提供必要的電壓。
GND(接地):接地引腳連接到電源的接地或0V基準(zhǔn)。
TRIG(觸發(fā)器):TRIG引腳是一個(gè)輸入引腳,觸發(fā)超聲波傳感器發(fā)出10μs的超聲波脈沖。你通常發(fā)送一個(gè)短的高電平脈沖到這個(gè)引腳來啟動(dòng)距離測(cè)量。
ECHO(回聲):ECHO引腳是一個(gè)輸出引腳,它在物體反射超聲波脈沖后感知它。通過測(cè)量該引腳上高電平的持續(xù)時(shí)間,可以計(jì)算到對(duì)象的距離。
電路圖-超聲傳感器與樹莓派Pico W接口
樹莓派Pico W板提供多個(gè)GPIO數(shù)字引腳,因?yàn)槿呛突夭ㄊ菙?shù)字引腳,因此您可以使用板上的任何數(shù)字引腳。關(guān)于它的兼容性和引腳,您可以參考之前創(chuàng)建的樹莓派Pico w的博客。下面的電路圖可以幫助您更好地理解連接。
超聲波的Vcc或電源引腳應(yīng)連接到電源電壓為5v的Raspberry Pi Pico W的VBUS引腳上。
超聲波的GND連接到Pico板的任何接地端子上。由于電路板上有各種接地端子,您可以使用其中任何一個(gè)。
傳感器的三角引腳連接到Pico板的數(shù)字引腳GP20上。
Echo引腳連接到Pico板的GP21上。
真正的界面是這樣的:
代碼的接口超聲傳感器與樹莓派Pico W
該代碼使用傳感器測(cè)量距離,并將測(cè)量的距離以厘米為單位顯示到串行監(jiān)視器上。
該程序設(shè)置了數(shù)字引腳,用于將傳感器與Pico W板連接,因?yàn)槲覀冎莱暡ㄉ嫌袃蓚€(gè)數(shù)字引腳用于通信。此外,我們還定義了一些必要的變量,以便在進(jìn)一步的編程中存儲(chǔ)數(shù)據(jù)。
在setup()函數(shù)中,執(zhí)行了以下操作:
初始化串行通信并設(shè)置數(shù)字通信引腳的引腳模式。在這種情況下,三角引腳需要來自板的高信號(hào),而Echo提供高時(shí)間,用于計(jì)算。因此,將三角引腳設(shè)置為輸出以發(fā)送信號(hào),而將回聲引腳設(shè)置為輸入以接收高時(shí)間。
在loop()函數(shù)中,我們知道觸發(fā)引腳應(yīng)該在10μs內(nèi)處于HIGH狀態(tài)以傳輸脈沖。因此,
觸發(fā)引腳設(shè)置為L(zhǎng)OW,以確保它處于已知狀態(tài)。
延遲2微秒的觸發(fā)引腳設(shè)置為高10微秒發(fā)送超聲波脈沖。
觸發(fā)引腳設(shè)置回LOW。
pulseIn()函數(shù)用于測(cè)量超聲波脈沖返回所需的持續(xù)時(shí)間。它測(cè)量回聲引腳保持高電平的持續(xù)時(shí)間,然后以微秒為單位返回持續(xù)時(shí)間。
距離可以簡(jiǎn)單地通過將持續(xù)時(shí)間(以μs為單位)乘以聲速(大約340米/秒)并除以2來計(jì)算,因?yàn)槊}沖傳播到物體和返回的距離是距離的兩倍。由于持續(xù)時(shí)間以μs為單位,因此為了將速度(340 m/s)轉(zhuǎn)換為μs,我們還將方程除以10^4。
計(jì)算出的距離以厘米為單位打印在串行監(jiān)視器上。
代碼不斷重復(fù)這個(gè)過程,每0.5秒測(cè)量一次距離并顯示在串行監(jiān)視器上。
樹莓派的超聲波工作原理
上傳代碼到Raspberry Pi Pico W需要在Arduino IDE中安裝板。將代碼上傳到Pico W板,然后檢查硬件連接是否正確。
現(xiàn)在,打開串行監(jiān)視器,您將看到以厘米為單位的距離測(cè)量值。
本文編譯自iotdesignpro