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