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