一、實物圖
?
二、原理圖
編號 | 名稱 | 功能 |
1 | VCC | 電源正 |
2 | TRIG | 觸發(fā)控制信號輸入 |
3 | ECHO | 回響信號輸出 |
4 | GND | 電源地 |
三、簡介
由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波經(jīng)常用于距離的測量,如測距儀和物體測量儀等都可以通過超聲波來實現(xiàn)。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求,因此在移動機器人研制上也得到了廣泛的應(yīng)用。
HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度3mm,模塊包括超聲波發(fā)射器、接收器與控制電路。
基本工作原理:
超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回,超聲波接收器收到反射波就立即停止計時。測試距離=(計時時間*聲速)/2
?
四、電器特性
?
五、時序解析
?
(1)采用IO口TRIG觸發(fā)測距,給最少10us的高電平觸發(fā)信號。
(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;
(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。
(4)測試距離=(高電平時間*聲速)/2;
代碼如下:
/****
*******獲取距離函數(shù)
Hcsr04_temp:當前的環(huán)境溫度
返回值:測得的距離(距離單位cm)
*****/
uint Hcsr04_GetDistance(uint Hcsr04_temp)
{
?? uint Hcsr04_distance;?????????? //用于記錄測得的距離
?? float Hcsr04_speed;???????????? //保存超聲波的速度值
?? TH2 = 0;???????????? //使用定時器2作為計時器
?? TL2 = 0;
?? HCSR04_Trig = 0;???? //給超聲波模塊一個高電平的開始脈沖
?? Hcsr04_Delay(20);
?? HCSR04_Trig = 1;
?? Hcsr04_Delay(20);
?? HCSR04_Trig = 0;
?? while(!HCSR04_Echo);??? //等待超聲波模塊的返回脈沖
?? TR2 = 1;??????????????? //啟動定時器,開始計時
?? while(HCSR04_Echo);???? //等待超聲波模塊的返回脈沖結(jié)束
?? TR2 = 0;??????????????? //停止定時器,停止計時
?? Hcsr04_speed = 0.607*Hcsr04_temp+331.4;?????????????//根據(jù)公式 v=0.607T+331.4 計算出當前溫度值對應(yīng)的超聲波速度,這時的單位是“米/秒”
?? Hcsr04_speed = Hcsr04_speed/10000;??????????????????//將超聲波的速度從單位“m/s”轉(zhuǎn)為“cm/us”,方便后面的計算
? Hcsr04_distance=((TH2*256+TL2) * (12/FOSC) * Hcsr04_speed) / 2;?????????? // 距離cm = (時間us * 速度cm/us) / 2
?? if(Hcsr04_distance > 500)? //把檢測結(jié)果限制500厘米內(nèi)
? ?Hcsr04_distance = 500;
?? return Hcsr04_distance;
}
六、流程設(shè)計
首先初始化引腳,然后復(fù)位定時器計數(shù)值,接著給超聲波一個高電平的開始信號,等待超聲波模塊的返回脈沖,接到返回脈沖,則開始計時,然后等待超聲波模塊的返回脈沖結(jié)束,如果結(jié)束,則停止計時。接下來通過溫度補償計算聲波速度,通過距離=(時間*速度)/2最終得到距離值。最后判斷距離值是否超過量程,如果超過量程則將距離值設(shè)置成最大量程值。文章來源:http://www.zghlxwxcb.cn/news/detail-404722.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-404722.html
到了這里,關(guān)于【mcuclub】超聲波測距模塊HC-SR04的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!