步驟1:零件清單
只需要很少的部件:
1只有HC-SR04超聲波模塊或類似的
1只有Arduino Uno R3
4只有Arduino male-女性跳線
第2步:接線圖
完成此項(xiàng)目只需要四條線。
接線圖顯示在photo1中。
步驟3:理論
HC-SR04超聲波測(cè)距儀模塊(照片1)提供2cm-400cm范圍內(nèi)的非接觸式測(cè)量。精度通常為+/- 3mm,具體取決于距離,氣溫和濕度。
為獲得最高精度,目標(biāo)區(qū)域應(yīng)至少為0.5平方米。當(dāng)換能器直接指向目標(biāo)時(shí)獲得最佳結(jié)果。但是,可以在+/- 15度的假想“錐形”內(nèi)使用可用的結(jié)果。
將HC-SR04連接到Arduino非常簡(jiǎn)單,因?yàn)槌藘蓚€(gè)電源引腳外,只有兩根電線,“Trig”(觸發(fā)器)和“Echo”是必需的。
必須將10uS(微秒)觸發(fā)脈沖施加到“Trig”引腳以開始每次測(cè)量。
接收到觸發(fā)脈沖后,模塊以40kHz(千赫茲)的頻率發(fā)出8個(gè)周期的“脈沖串”,然后“Echo”線變?yōu)楦唠娖健S|發(fā)脈沖和“Echo”引腳的上升沿之間有一個(gè)短的430uS間隔,在此期間,在超聲波脈沖發(fā)生之前,發(fā)射器電路中會(huì)產(chǎn)生高能量+/- 10伏電荷。
收到回波信號(hào)時(shí),“Echo”引腳降至LOW,或者先取210mS。
[注意:
如果阻止超聲波信號(hào)(我使用過在換能器上卷起襪子,您將觀察到3550cm的距離讀數(shù),該讀數(shù)超出傳感器范圍約400cm。
超過400厘米時(shí),距離讀數(shù)會(huì)突然跳到3550厘米。原因如下:
在正常操作中,measure()函數(shù)在小于25mS(423cm)內(nèi)完成其測(cè)量,然后再等待25mS,直到任務(wù)調(diào)度程序接下來將TaskFlag1設(shè)置為“TRUE”。
如果沒有收到回聲,任務(wù)調(diào)度程序?qū)⒗^續(xù)每隔50mS將TaskFlag1設(shè)置為“TRUE”,直到HC-SR04在210mS后超時(shí)并且Echo引腳降低。 HC-SR04忽略由measure()函數(shù)產(chǎn)生的所有10uS啟動(dòng)脈沖。
210mS的超時(shí)值對(duì)應(yīng)3550cm的距離。..因此距離突然跳躍閱讀。
重點(diǎn)是所有距離讀數(shù)都小于400厘米是正確的。 ]
典型波形
照片2,3,4中顯示了5cm,10cm,20cm和200cm距離的波形,以及5.
每張照片中的頂部曲線是“Trig”引腳。..。..每張照片中的下部曲線是“Echo”引腳。
每個(gè)“Echo”脈沖的持續(xù)時(shí)間可以通過將跡線長(zhǎng)度乘以每張照片右下角顯示的“uS/div”值來計(jì)算。
計(jì)算距離
可以從公式計(jì)算出精確距離:
距離(cm)=脈沖長(zhǎng)度*聲速/2 * 100 。..。..。..。..。..。..。..。..。..。..。..。..。..。.(1)
這假設(shè)“聲速”為340m/S,并且回波距離是實(shí)際距離的兩倍。
也可以計(jì)算距離使用公式:
距離(cm)=脈沖長(zhǎng)度(uS)/59 。..。..。..。..。..。..。..。. 。..。..。..。..。..。..。..。..。..。..。..。..。..。..。..。..。. 。..。(2)
通過調(diào)整常數(shù)值59可以得到確切的距離。
[注意:
常數(shù)的59值推導(dǎo)如下:
聲速約為340m/S,為0.034cm/uS(厘米/微秒) nd)。
0.034cm/uS的倒數(shù)是29.412uS/cm,當(dāng)乘以2以允許返回路徑時(shí),倒圓時(shí)等于58.824或59。 ]
示例1:
將脈沖長(zhǎng)度2400uS代入等式( 1)我們得到:
距離= 2400/1000000 * 340/2 * 100 = 40.8cm
示例2:
將脈沖長(zhǎng)度2400uS代入等式(2)得到:
距離= 2400/59 = 40.7cm
步驟4:代碼
代碼包含一個(gè)“measure()”函數(shù),使用instructable https://www中描述的任務(wù)調(diào)度程序每50mS調(diào)用一次。 instructables.com/id/Multi-task-Your-。..
measure()函數(shù)包含以下代碼:
// ----- generate 10uS start pulse
digitalWrite(Trig,HIGH);
delayMicroseconds(10);
digitalWrite(Trig,LOW);
// ----- measure the distance
while (!digitalRead(Echo)); //wait for Echo pin to go high
start_time = micros();
while (digitalRead(Echo)); //wait for Echo pin to go low
finish_time = micros();
time_taken = finish_time - start_time;
Distance = ((float)time_taken)/59;
完整代碼“Ultrasonic_range_finder將此文本文件的內(nèi)容復(fù)制到Arduino草圖中,將其保存為“Ultrasonic_range_finder”(不帶引號(hào)),然后編譯并上傳到Arduino。
步驟5:測(cè)量距離
要查看距離讀數(shù),請(qǐng)單擊“工具|串行監(jiān)視器”并將速度設(shè)置為115200波特。
可以通過沿標(biāo)尺放置物體然后調(diào)整“距離”的常數(shù)“59”值來校準(zhǔn)距離讀數(shù),直到顯示精確讀數(shù)。
-
Arduino
+關(guān)注
關(guān)注
188文章
6490瀏覽量
190075 -
超聲波測(cè)距儀
+關(guān)注
關(guān)注
1文章
47瀏覽量
14146
發(fā)布評(píng)論請(qǐng)先 登錄
超聲波清洗的原理是什么?超聲波清洗是如何起作用的?

超聲波頻率和功率對(duì)在線式超聲波清洗的影響如何?

超聲波傳感器的種類原理與設(shè)計(jì)應(yīng)用的注意要點(diǎn)

畢業(yè)設(shè)計(jì)競(jìng)賽選題推薦 | 鴻蒙物聯(lián)網(wǎng)應(yīng)用之智能測(cè)距儀項(xiàng)目實(shí)戰(zhàn)(含文檔及源碼)

超聲波清洗儀的使用方法

超聲波液位計(jì)的工作原理 超聲波液位計(jì)與其他液位計(jì)的比較
如何避免超聲波對(duì)晶振的影響

RK3568教學(xué)實(shí)驗(yàn)箱_操作案例:5-19 超聲波測(cè)距實(shí)驗(yàn)
超聲波和次聲波的頻率范圍和應(yīng)用
什么是超聲波一體氣象儀?

超聲波測(cè)速的原理、方法及應(yīng)用
超聲波測(cè)速是利用超聲波的什么效應(yīng)
第七章-V1.5 STM32超聲波測(cè)距STM32F103C8t6超聲波避障小車 超聲波避障模塊 STM32超聲波測(cè)距

超聲波驅(qū)動(dòng)板-超聲波它激式驅(qū)動(dòng)板

激光測(cè)距儀真的好用嗎?

評(píng)論