找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8202|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

超聲波模塊類型 工作原理 參數(shù) 測(cè)距程序等

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:102668 發(fā)表于 2016-1-14 06:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
超聲波測(cè)距模塊有好多種類型,目前比較常用的有URM37超聲波傳感器默認(rèn)是232接口,可以調(diào)為TTL接口,URM05大功率超聲波傳感器測(cè)試距離能到10米,算是目前來說測(cè)試距離比較遠(yuǎn)的一款了,另外還有比較常用的國外的幾款SRF系列的超聲波模塊,目前的超聲波模塊精度能到1cm。
   

下面我們介紹一款HC-SR04模塊:

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)返回,通過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è)量的值










5、 操作:初始化時(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   就可以算出超聲波到障礙物的距離。

6、 下面是飛思卡爾XS128單片機(jī)測(cè)距的程序:

while(1)
{
PT1AD0_PT1AD00 = 1;//給超聲波模塊輸入高脈沖

PITINTE_PINTE1=1;  //打開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;   //打開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;    //打開定時(shí)器定時(shí)500ms,數(shù)碼管顯示
while(!(counter>=10000))
{
    Showing(distance);   //顯示距離,精確1cm
}
  PITINTE_PINTE0=0;counter=0;  //關(guān)閉定時(shí)器,清零  

}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:373650 發(fā)表于 2018-7-26 10:07 | 只看該作者
distance = counter*17/20這個(gè)怎么來的????
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表