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