基于單片機的超聲波測距系統設計及實(shí)現
1 超聲波測距原理
超聲波傳感器分機械方式和電氣方式兩類(lèi),它實(shí)際上是一種換能器,在發(fā)射端它把電能或機械能轉換成聲能,接收端則反之。本次設計超聲波傳感器采用電氣方式中的壓電式超聲波換能器,它是利用壓電晶體的諧振來(lái)工作的。它有兩個(gè)壓電晶片和一個(gè)共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì )發(fā)生共振,并帶動(dòng)共振板振動(dòng),產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機械能轉換為電信號,就成為超聲波接收器。在超聲波電路中,發(fā)射端輸出一系列脈沖方波,脈沖寬度越大,輸出的個(gè)數越多,能量越大,所能測的距離也越遠。超聲波發(fā)射換能器與接收換能器其結構上稍有不同,使用時(shí)應分清器件上的標志。
Pellarn和Galt于1946年提出了脈沖回波法,其工作原理是:用超聲脈沖激勵超聲探頭向外輻射超聲波,同時(shí)接收從被測物體反射回來(lái)的超聲波(簡(jiǎn)稱(chēng)回波),通過(guò)檢測或估計從發(fā)射超聲波至接收回波所經(jīng)歷的射程時(shí)間ToF(Time of Flight),按下式計算超聲波探頭與被測物體之間的距離d,即:
其中c為聲波在空氣介質(zhì)中的傳播速度。
2 系統構成
本系統硬件電路由單片機、超聲波發(fā)射電路、超聲波接收電路、測溫電路、顯示電路、報警電路等構成,如圖1所示。
3 系統程序設計
3.1 主程序
主程序首先對系統環(huán)境初始化,設置定時(shí)器TO工作模式為16位定時(shí)/計數器模式,總中斷允許位置1并給顯示端口清0;然后調用超聲波發(fā)生子程序送出若干個(gè)超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起直射渡觸發(fā),從發(fā)射開(kāi)始一直到"虛假反射波"結束這段時(shí)間內,不開(kāi)放外部中斷(INTO)申請,便可有效躲避干擾,但同時(shí)也會(huì )造成測試"盲區".假設延時(shí)約0.1 ms后,才打開(kāi)外部中斷接收返回的超聲波信號,當溫度為20℃,測量盲區為d=1×10-2×344=1.72 cm.
3.2 超聲波發(fā)生子程序和接收子程序
超聲波發(fā)生子程序的作用是通過(guò)P1.0端口發(fā)送超聲波換能器所需的40kHz的方波信號(脈沖寬度為12μs左右),同時(shí)把計數器TO打開(kāi)進(jìn)行計時(shí)。超聲波發(fā)生子程序較簡(jiǎn)單,但要求程序運行準確,所以采用匯編語(yǔ)言編程。
超聲波接收子程序利用外部中斷O檢測返回超聲波,一旦接收到返回超聲波信號(即INT0引腳出現低電平),立即進(jìn)入中斷服務(wù)子程序,關(guān)閉定時(shí)器TO停止計時(shí),并將測距成功標志位賦值1.如果當計時(shí)器溢出時(shí)還未檢測到超聲波返回信號,則說(shuō)明障礙物過(guò)遠,超出量程,將關(guān)閉外部中斷,并標志此次測距不成功。
最大測試距離將取決于:兩次脈沖群發(fā)送之間的最小時(shí)間間隔和脈沖的能量。一般來(lái)說(shuō),發(fā)射端脈沖個(gè)數越多,能量越大,所能測量的距離也越遠。但也不是無(wú)限制的,本方案是讀取定時(shí)器TO的計數值,最大能測試的距離是TO尚未溢出時(shí)檢測到超聲波回波信號,故在溫度20℃下,最大測試距離為。在一些周期性發(fā)射超聲波設備中,如果要測試的最大距離是10 m,則兩次脈沖群之間的最小時(shí)間為。
評論