您將學(xué)習(xí)如何將超聲波傳感器HC-SR04與Arduino連接。它可以是超聲波范圍傳感器或任何用途。
超聲波傳感器HC-SR04是可以測(cè)量距離的傳感器。它會(huì)發(fā)出40 000 Hz(40kHz)的超聲波,該超聲波在空中傳播,如果路徑上有物體或障礙物,它將反彈回模塊??紤]到傳播時(shí)間和聲音的速度,您可以計(jì)算出距離。
HC-SR04的配置引腳為VCC(1),TRIG(2),ECHO(3)和GND(4)。VCC的電源電壓為+ 5V ,您可以將TRIG和ECHO引腳連接到Arduino板中的任何數(shù)字I / O。
進(jìn)行此項(xiàng)目所需的材料:
1. Arduino UNO R3 CH340(您可以使用任何Arduino開(kāi)發(fā)板)
2.超聲波傳感器HC-SR04
3.公對(duì)公跳線
4.面包板
為了產(chǎn)生超聲波,我們需要將觸發(fā)引腳設(shè)置為高狀態(tài)10 s 。這將發(fā)出一個(gè)8周期的聲音脈沖,將以速度聲音行進(jìn),并且將在回音針中接收?;匾翎槍⑤敵雎暡▊鞑サ臅r(shí)間(以微秒為單位)。
例如,如果物體距傳感器20厘米,并且聲音的速度為340 m / s或0.034 cm / μs,則聲波將需要傳播約588微秒。但是由于聲波需要向前傳播和向后反彈,所以從回聲針?biāo)玫降膶?huì)是這個(gè)數(shù)字的兩倍。因此,為了獲得以厘米為單位的距離,我們需要將從回波引腳接收的行進(jìn)時(shí)間值乘以0.034,然后將其除以2。
對(duì)于編程代碼,首先我們需要定義連接到Arduino板的觸發(fā)引腳和回波引腳。在此項(xiàng)目中,EchoPin附加到D2 ,TrigPin附加到D3。然后定義距離(整數(shù))和持續(xù)時(shí)間(長(zhǎng)整數(shù))的變量。
在循環(huán)中,首先必須確保trigPin是透明的,所以我們必須將該引腳設(shè)置為L(zhǎng)OW狀態(tài)僅2 μs 。現(xiàn)在,用于生成超聲波,我們必須設(shè)置trigPin的高態(tài)為10微秒。使用pulseIn()函數(shù),您必須讀取行程時(shí)間并將該值放入變量“ duration”中。此功能有2個(gè)參數(shù),第一個(gè)是回波引腳的名稱,第二個(gè)可以寫(xiě)入HIGH或LOW。在這種情況下,HIGH表示pulseIn()該功能將等待由反彈的聲波引起的引腳變?yōu)?a class="article-link" target="_blank" href="/tag/%E9%AB%98%E7%94%B5%E5%B9%B3/">高電平并開(kāi)始計(jì)時(shí),然后在聲波結(jié)束時(shí)等待引腳變?yōu)榈碗娖蕉V褂?jì)時(shí)。最后,該函數(shù)將返回脈沖長(zhǎng)度(以微秒為單位)。為了獲得距離,我們將持續(xù)時(shí)間乘以0.034,然后將其除以2,如我們之前解釋此方程式。最后,我們將在串行監(jiān)視器上打印距離的值。
腳步 :
1.首先進(jìn)行如圖所示的接線
2.打開(kāi)Arduino IDE軟件并寫(xiě)下您的代碼,或下載下面的代碼并打開(kāi)它
3.通過(guò)選擇工具>板> Arduino / Geniuno Uno選擇您自己的Arduino板(在本例中為Arduino Uno)
4.選擇“ COM端口”(通常只顯示一個(gè)現(xiàn)有端口),在“工具” >“端口” >“ COM?!敝小#ㄈ绻卸鄠€(gè)端口,請(qǐng)一一嘗試)
5.通過(guò)按Ctrl + U或Sketch > Upload上載代碼
6.要顯示測(cè)量數(shù)據(jù),可以使用串行監(jiān)視器,方法是按Ctrl + Shift + M (確保波特率是9600)
上載代碼后,使用串行監(jiān)視器顯示數(shù)據(jù)。現(xiàn)在,嘗試將一個(gè)物體放在傳感器前面,然后查看測(cè)量結(jié)果。
考慮到這一點(diǎn),您可以使用手動(dòng)卷尺測(cè)量距離并將其與串行監(jiān)視器上的距離進(jìn)行比較。如果要在LCD上顯示,可以按照第二個(gè)接線圖并上傳以下代碼。