摘要:基于超聲波實(shí)現(xiàn)無(wú)接觸式測(cè)距原理,,介紹了一種基于單片機(jī)控制的超聲波測(cè)距系統(tǒng)的設(shè)計(jì)方法。由單片機(jī)軟件產(chǎn)生40kHz超聲波,,并測(cè)量回波時(shí)間,,可精確到us級(jí)。為提高測(cè)距精度,,采取了溫度補(bǔ)償,、角度補(bǔ)償措施。實(shí)驗(yàn)表明系統(tǒng)具有較高的測(cè)量精度和實(shí)用價(jià)值,。
關(guān)鍵詞:起聲波;測(cè)距,;單片機(jī)
O 引言
超聲波是指頻率大于20 kHz的在彈性介質(zhì)中產(chǎn)生的機(jī)械震蕩波,。由于超聲波頻率較高,穿透力強(qiáng),,指向性強(qiáng),,傳輸過(guò)程中衰減少,,能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),,遇到雜質(zhì)或分界面時(shí)會(huì)產(chǎn)生反射波,因此常被用于非接觸式測(cè)距,。并且超聲波對(duì)光線,、色彩和電磁場(chǎng)不敏感,因此超聲波測(cè)距對(duì)環(huán)境有較好的適應(yīng)能力,。廣泛應(yīng)用于汽車倒車,、機(jī)器人避障、工業(yè)測(cè)井,、水庫(kù)液位測(cè)量,、管道長(zhǎng)度測(cè)量等需要自動(dòng)進(jìn)行非接觸測(cè)距的場(chǎng)合。
1 超聲波測(cè)距原理
Pellarn和Galt于1946年提出了脈沖回波法,,其工作原理是:用超聲脈沖激勵(lì)超聲探頭向外輻射超聲波,同時(shí)接收從被測(cè)物體反射回來(lái)的超聲波(簡(jiǎn)稱回波),,通過(guò)檢測(cè)或估計(jì)從發(fā)射超聲波至接收回波所經(jīng)歷的射程時(shí)間ToF(Time of Flight),,按下式計(jì)算超聲波探頭與被測(cè)物體之間的距離d,即
其中,。c為聲波在空氣介質(zhì)中的傳播速度,。
2 系統(tǒng)構(gòu)成
本系統(tǒng)硬件電路由單片機(jī)、超聲波發(fā)射電路,、超聲波接收電路,、測(cè)溫電路,、顯示電路,、報(bào)警電路等構(gòu)成,,如圖1所示。
3 系統(tǒng)程序設(shè)計(jì)
3.1 主程序
主程序首先對(duì)系統(tǒng)環(huán)境初始化,,設(shè)置定時(shí)器TO工作模式為16位定時(shí)/計(jì)數(shù)器模式,,總中斷允許位置1并給顯示端口清0;然后調(diào)用超聲波發(fā)生子程序送出若干個(gè)超聲波脈沖,,為了避免超聲波從發(fā)射器直接傳送到接收器引起直射渡觸發(fā),,從發(fā)射開(kāi)始一直到“虛假反射波”結(jié)束這段時(shí)間內(nèi),不開(kāi)放外部中斷(INTO)申請(qǐng),,便可有效躲避干擾,但同時(shí)也會(huì)造成測(cè)試“盲區(qū)”。假設(shè)延時(shí)約0.1 ms后,,才打開(kāi)外部中斷接收返回的超聲波信號(hào),當(dāng)溫度為20℃,,測(cè)量盲區(qū)為d=1×10-2×344=1.72 cm,。
3.2 超聲波發(fā)生子程序和接收子程序
超聲波發(fā)生子程序的作用是通過(guò)P1.0端口發(fā)送超聲波換能器所需的40kHz的方波信號(hào)(脈沖寬度為12μs左右),同時(shí)把計(jì)數(shù)器TO打開(kāi)進(jìn)行計(jì)時(shí),。超聲波發(fā)生子程序較簡(jiǎn)單,,但要求程序運(yùn)行準(zhǔn)確,所以采用匯編語(yǔ)言編程,。
超聲波接收子程序利用外部中斷O檢測(cè)返回超聲波,,一旦接收到返回超聲波信號(hào)(即INT0引腳出現(xiàn)低電平),立即進(jìn)入中斷服務(wù)子程序,,關(guān)閉定時(shí)器TO停止計(jì)時(shí),并將測(cè)距成功標(biāo)志位賦值1,。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超聲波返回信號(hào),,則說(shuō)明障礙物過(guò)遠(yuǎn),超出量程,,將關(guān)閉外部中斷,,并標(biāo)志此次測(cè)距不成功。
最大測(cè)試距離將取決于:兩次脈沖群發(fā)送之間的最小時(shí)間間隔和脈沖的能量,。一般來(lái)說(shuō),,發(fā)射端脈沖個(gè)數(shù)越多,能量越大,,所能測(cè)量的距離也越遠(yuǎn)。但也不是無(wú)限制的,,本方案是讀取定時(shí)器TO的計(jì)數(shù)值,,最大能測(cè)試的距離是TO尚未溢出時(shí)檢測(cè)到超聲波回波信號(hào),故在溫度20℃下,,最大測(cè)試距離為,。在一些周期性發(fā)射超聲波設(shè)備中,如果要測(cè)試的最大距離是10 m,,則兩次脈沖群之間的最小時(shí)間為,。
由于采用12 MHz的晶振,機(jī)器周期為1μs,,當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,,將計(jì)數(shù)器TO中的數(shù)值按式(1)計(jì)算,即可測(cè)得被測(cè)物與測(cè)距儀之間的距離,,取20℃時(shí)的聲速為344 m/s,。則有:
其中,TO為計(jì)數(shù)器TO的計(jì)數(shù)值,。
4 提高測(cè)量精度
4.1 溫度補(bǔ)償
由于超聲波的聲速與溫度有關(guān),,如果溫度變化不大,可認(rèn)為聲速基本不變,。如果測(cè)距精度要求很高,,則應(yīng)通過(guò)溫度補(bǔ)償?shù)姆椒右孕U?/p>
可知,,超聲波在空氣中的傳播速度與溫度T(單位:攝氏度)有如下近似關(guān)系:
其中,,C0為0℃時(shí)的聲波速度為331.45 m/s,,T為實(shí)際溫度(℃)。在常溫下,,溫度每變化1攝氏度,,超聲波速度變化約為O.6 m/s,所以通過(guò)測(cè)溫電路測(cè)量出當(dāng)前溫度,,就可以計(jì)算出超聲波在當(dāng)前溫度下的傳輸速度,。
測(cè)溫電路采用的主要元器件是美國(guó)Dallas半導(dǎo)體公司生產(chǎn)的單總線數(shù)字溫度傳感器DSl8B20,其具有精度高,、智能化,、體積小、線路簡(jiǎn)單等特點(diǎn),。
4.2 角度補(bǔ)償
由于發(fā)射與反射之間存在一定的夾角2α,,當(dāng)α很小時(shí),,可直接按式(1)計(jì)算距離;當(dāng)α較大時(shí),,則必須進(jìn)行距離修正,,其修正公式為:
在式(4)中,夾角α與超聲波發(fā)射裝置和接收裝置的安裝位置有關(guān),,在實(shí)際應(yīng)用中應(yīng)保持兩換能器中心軸線盡量平行并相距2 cm~4 cm,,在近距離測(cè)量時(shí)更要考慮角度補(bǔ)償。若能夠?qū)⒊暯邮针娐菲帘纹饋?lái),,則可提高抗干擾性能,。根據(jù)測(cè)量范圍可適當(dāng)調(diào)整與接收換能器并接的濾波電容的大小,,以獲得合適的接收靈敏度和抗干擾能力。
5 結(jié)論
為防止在測(cè)量過(guò)程中測(cè)距儀的抖動(dòng)而引起的測(cè)量誤差,,一般情況下應(yīng)測(cè)量幾次取其平均值。由于系統(tǒng)的分辨率為1μs,,系統(tǒng)引起的固定誤差約為0.3mm,再加上本設(shè)計(jì)只考慮了溫度補(bǔ)償和角度補(bǔ)償?shù)挠绊?,而沒(méi)有考慮其他環(huán)境因素(如:氣壓,、濕度……)的影響,所以在測(cè)量的時(shí)侯給測(cè)量結(jié)果帶來(lái)了一定的誤差,。