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