超聲波測距模塊有好多種類型,目前比較常用的有URM37超聲波傳感器默認(rèn)是232接口,可以調(diào)為TTL接口,URM05大功率超聲波傳感器測試距離能到10米,算是目前來說測試距離比較遠的一款了,另外還有比較常用的國外的幾款SRF系列的超聲波模塊,目前的超聲波模塊精度能到1cm。本文主要詳解HC-SR04模塊吉他的工作原理,首先介紹的是HC-SR04模塊的優(yōu)勢及應(yīng)用領(lǐng)域,其次闡述了超聲波測距模塊工作原理及電路圖,最后介紹了電氣參數(shù)、超聲波時序圖、操作以及程序,具體的跟隨小編來了解一下。
HC-SR04模塊的優(yōu)勢及應(yīng)用領(lǐng)域HC-SR04模塊優(yōu)勢
此模塊性能穩(wěn)定,測度距離精確,模塊高精度,盲區(qū)小。
產(chǎn)品應(yīng)用領(lǐng)域:
1、機器人避障
2、物體測距
3、液位檢測
4、公共安防
5、停車場檢測
超聲波測距模塊工作原理
?。?)采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;
(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;
?。?)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2;
(4)本模塊使用方法簡單,一個控制口發(fā)一個10US以上的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開定時器計時,當(dāng)此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離。如此不斷的周期測,即可以達到你移動測量的值
超聲波測距模塊電路圖電氣參數(shù)
1
超聲波時序圖
操作
初始化時將trig和echo端口都置低,首先向給trig 發(fā)送至少10 us的高電平脈沖(模塊自動向外發(fā)送8個40K的方波),然后等待,捕捉 echo 端輸出上升沿,捕捉到上升沿的同時,打開定時器開始計時,再次等待捕捉echo的下降沿,當(dāng)捕捉到下降沿,讀出計時器的時間,這就是超聲波在空氣中運行的時間,按照 測試距離=(高電平時間*聲速(340M/S))/2 就可以算出超聲波到障礙物的距離。
下面面是飛思卡爾XS128單片機測距的程序:
while(1)
{
PT1AD0_PT1AD00 = 1;//給超聲波模塊輸入高脈沖
PITINTE_PINTE1=1; //打開PIT1定時器
while(!(counter0》=4)); //等待20us
PITINTE_PINTE1=0;counter0 = 0;//關(guān)閉定時器,計數(shù)清零
PT1AD0_PT1AD00 = 0; //trig管腳拉低
PORTB_PB0 = 0; //指示燈0
while(?。≒T1AD0_PT1AD01 == 1)); //等待echo輸出上升沿
PORTB_PB1 = 0; //指示燈1
PITINTE_PINTE0=1; //打開PIT0定時器
while(!(PT1AD0_PT1AD01 == 0)); //等待下降沿
distance = counter*17/20; //計算距離,單位CM
PITINTE_PINTE0=0; //關(guān)閉定時器
PORTB_PB2 = 0; //指示燈2
PITINTE_PINTE0=1; //打開定時器定時500ms,數(shù)碼管顯示
while(!(counter》=10000))
{
Showing(distance); //顯示距離,精確1cm
}
PITINTE_PINTE0=0;counter=0; //關(guān)閉定時器,清零
}