超聲波模塊HC-SR04簡(jiǎn)介以及編程
1、本模塊性能穩(wěn)定,測(cè)度距離精確,模塊高精度,盲區(qū)小。
產(chǎn)品應(yīng)用領(lǐng)域:機(jī)器人避障物體測(cè)距液位檢測(cè)公共安防停車場(chǎng)檢測(cè)。
2、主要技術(shù)參數(shù):
1:使用電壓:DC---5V
2:靜態(tài)電流:小于2mA
3:電平輸出:高5V
4:電平輸出:底0V
5:感應(yīng)角度:不大于15度
6:探測(cè)距離:2cm-450cm
7:高精度可達(dá)0.2cm
實(shí)物圖
接線方式:VCC、trig(控制端)、echo(接收端)、GND
基本工作原理:(1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào); (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2; 本模塊使用方法簡(jiǎn)單,一個(gè)控制口發(fā)一個(gè)10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開(kāi)定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,方可算出距離.如此不斷的周期測(cè),即可以達(dá)到你移動(dòng)測(cè)量的值
5、 操作:初始化時(shí)將trig和echo端口都置低,首先向給trig發(fā)送至少10 us的高電平脈沖(模塊自動(dòng)向外發(fā)送8個(gè)40K的方波),然后等待,捕捉echo端輸出上升沿,捕捉到上升沿的同時(shí),打開(kāi)定時(shí)器開(kāi)始計(jì)時(shí),再次等待捕捉echo的下降沿,當(dāng)捕捉到下降沿,讀出計(jì)時(shí)器的時(shí)間,這就是超聲波在空氣中運(yùn)行的時(shí)間,按照測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2就可以算出超聲波到障礙物的距離。
6、 下面是飛思卡爾XS128單片機(jī)測(cè)距的程序:
while(1)
{
PT1AD0_PT1AD00 = 1;//給超聲波模塊輸入高脈沖
PITINTE_PINTE1=1;//打開(kāi)PIT1定時(shí)器
while(!(counter0>=4)); //等待20us
PITINTE_PINTE1=0;counter0 = 0;//關(guān)閉定時(shí)器,計(jì)數(shù)清零
PT1AD0_PT1AD00 = 0; //trig管腳拉低
PORTB_PB0 = 0;//指示燈0
while(!(PT1AD0_PT1AD01 == 1)); //等待echo輸出上升沿
PORTB_PB1 = 0;//指示燈1
PITINTE_PINTE0=1;//打開(kāi)PIT0定時(shí)器
while(!(PT1AD0_PT1AD01 == 0));//等待下降沿
distance = counter*17/20;//計(jì)算距離,單位CM
PITINTE_PINTE0=0;//關(guān)閉定時(shí)器
PORTB_PB2 = 0;//指示燈2
PITINTE_PINTE0=1;//打開(kāi)定時(shí)器定時(shí)500ms,數(shù)碼管顯示
while(!(counter>=10000))
{
Showing(distance);//顯示距離,精確1cm
}
PITINTE_PINTE0=0;counter=0;//關(guān)閉定時(shí)器,清零
}