基于單片機的超聲波測距系統(tǒng)的設計
1 引言
超聲波測距作為一種典型的非接觸測量方法,與激光測距、紅外線測距相比,超聲波對外界光線、色彩和電磁場不敏感,更適于黑暗、電磁干擾強、有毒、灰塵或煙霧的惡劣環(huán)境,在識別透明及漫反射性差的物體上也更有優(yōu)勢。由于聲波在空氣中傳播速度遠遠小于光線和無線電波的傳播速度,對于時間測量精度的要求遠小于激光測距、微波測距等系統(tǒng),因而超聲波測距系統(tǒng)電路易實現、結構簡單和造價低,且超聲波在傳播過程中不受煙霧、空氣能見度等因素的影響,在各種場合均得到廣泛應用,如倒車防撞雷達、海洋測量、物體識別、工業(yè)控制,建筑工程測量和機器人視覺識別。
2超聲波測距基本原理
超聲波測距的基本工作原理是測量超聲波在空氣中的傳播時間,由超聲波傳播時間和傳播速度來確定距離障礙物的距離,即脈沖--回波方式。該方式的基本電路框圖如圖1所示。由發(fā)射傳感器、發(fā)射電路、接收傳感器、接收放大電路、回波信號處理電路和單片機控制電路等幾部分組成。

發(fā)射電路是一個工作頻率為40khz的多諧振蕩器,多諧振蕩器受單片機控制,產生一定數量的發(fā)射脈沖,用于驅動超聲波發(fā)射傳感器,并激勵出超聲波在空氣中傳播,遇障礙物反射而返回。超聲波接收傳感器通過壓電轉換的原理,將由障礙物返回的回波信號轉換成電信號,由于該信號幅度較小(幾到十幾毫伏),因此須由低噪聲放大、40khz帶通濾波電路將回波信號放大到一定幅度,且干擾成分較少,并由回波波號處理電路轉換成方波信號,送至單片機系統(tǒng)進行時間測量和距離的顯示。
超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離(s),即:s=ct/2。
在啟動發(fā)射電路的同時啟動單片機內部的定時器t0,利用定時器的計數功能記錄超聲波發(fā)射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路輸出端產生一個負跳變,在int0端產生一個中斷請求信號,單片機響應外部中斷請求,執(zhí)行外部中斷服務子程序,讀取時間差,計算距離。
3 超聲波測距的誤差分析
3.1 環(huán)境溫度對測量精度的影響
利用超聲測距要考慮媒質的彈性模量和密度對聲速的影響。在氣體中,壓強、溫度、濕度等因素會引起密度的變化,氣體中聲速主要受密度影響,超聲波在固體中傳播速度最快,氣體中傳播速度最慢。氣體中聲速受溫度影響最大,超聲波在空氣中傳播速度為

式中t為絕對溫度,c0=331.4m/s。
由于聲速與溫度有關,為了提高測量精度,設置了溫度檢測電路,根據實際測量的溫度值利用公式計算超聲波速度,對最終測量結果進行校正。
3.2 回波前沿檢測誤差對測量精度的影響
超聲波從超聲傳感器發(fā)出,在空氣中傳播,遇到被測物反射后,再傳回超聲傳感器。整個過程,由于吸收衰減和擴散損失,聲強隨目標距離增大而衰減;同時衰減系數還與超聲波的頻率有關。因此超聲波測距在實際應用的局限性,影響了超聲波測距的精度。一是超聲波在空氣中衰減極大,由于測量距離的不同,造成回波信號的起伏,使回波到達時間的測量產生較大的誤差。二是超聲波脈沖在發(fā)射、空氣中傳播和接收過程中,其回波信號被展寬,影響了測距的分辨率,尤其是對近距離的測量造成較大的影響。由于超聲波收、發(fā)傳感器均由壓電陶瓷構成,壓電陶瓷片在壓電的雙向轉換過程中,均存在慣性、滯后等現象,導致回波信號被展寬。這些因素造成了回波正確到達時間的不確定性,對測量精度造成較大的影響。正確檢測回波到達時間,能使超聲波測距精度獲得提高。
4系統(tǒng)組成結構
4.1 硬件結構
主要包括at89c51單片機、超聲波發(fā)射電路、超聲波接收電路、顯示電路、測溫電路等。
采用數字溫度計ds18b20來采集溫度信號,ds18b20是美國dalas公司推出的單線串行數字溫度計,可直接與單片機連接,測量范圍從-55℃~125℃,-10℃~85℃時測量精度為0.5℃。
超聲波發(fā)射及驅動電路由功率放大電路和超聲波發(fā)射傳感器組成,其原理電路如圖2所示。放大器輸人端獲得一個來自單片機送來工作頻率為40khz的脈沖信號。通過功率放大電路放大到足夠大的能量(增加超聲波的傳播距離),該能量加給超聲波發(fā)射傳感器,驅動超聲波發(fā)射頭,并發(fā)射出40khz脈沖波,通過空間向外傳播出去。

超聲波接收電路由高速運算放大電路和超聲波接收傳感器組成,其原理電路如圖3所示。超聲波在空氣中傳播時,其能量衰減程度與傳播距離成正比,所以超聲波傳感器接收信號一般在1mv-iv之間。接收電路采用由lm318高速運算放大器組成兩級信號放大電路對其進行放大,以滿足增益帶寬和轉換速率的要求。當超聲波接收傳感器接收到返回的超聲波信號,接收傳感器將超聲波脈沖變?yōu)榻蛔冸娦盘枺浄糯笃鞣糯蠛筮M行處理。
測距電路的輸入端接單片機p1.0端口,單片機執(zhí)行程序時,在p1.0端口輸出一個40khz的脈沖信號,通過超聲波發(fā)射電路發(fā)射出去,同時啟動單片機內部的定時器t0,定時器開始計數。當反射物將超聲波反射回來,超聲波接收電路接受處理,輸出端產生一個負跳變,在into端產生一個中斷請求信號,定時器停止計數。單片機響應外部中斷請求,執(zhí)行外部中斷子程序,讀取超聲波從發(fā)射到接收的時間差,最后經過換算得出超聲波傳感器與反射物之間的距離。
4.2 系統(tǒng)軟件
系統(tǒng)軟件包括主程序、溫度采集子程序、發(fā)射子程序、計算子程序、數碼顯示子程序、外部中斷子程序和定時器中斷子程序。主程序完成初始化后調用發(fā)射子程序,由p1.0口發(fā)射脈沖,驅動超聲波傳感器發(fā)射超聲波,并關外部中斷,計數器t0開始計時;為防止虛假回波的干擾,在延時一段時間后,開中斷。當有外部中斷信號時,單片機就停止t0的計時,計算出渡越時間t并存儲到e2prom中;然后調用測溫子程序,采集超聲波測距時的環(huán)境溫度,并換算出準確的聲速c,存儲到e2prom;單片機再調用計算子程序,計算出傳感器到目標物體之間的距離,最后把測量結果存儲并通過數碼管電路顯示出來,完成一次測量。
設計中,超聲波發(fā)射極和接收極距離較近,當發(fā)射極發(fā)射超聲波后,有部分超聲波沒經過障礙物反射就直接繞射到接收極上,這部分信號是無用的,會引起系統(tǒng)誤測。設計中采用延時技術來解決這個問題,并設定延時時間為1ms,即在發(fā)射極發(fā)射超聲波1ms內,通過軟件關閉所有中斷,接收電路對此期間接收到的任何信號不予理睬,1ms后立即啟動t0,這時接收到的信號才有效,并在接收到回波信號的同時,t0停。此時t0所記錄的cpu發(fā)送脈沖信號的前沿到回波脈沖信號之間的時間才是需要的。因此系統(tǒng)存在測量盲區(qū)。主程序流程圖如圖4所示。

本文所設計的超聲波測距系統(tǒng),其結構簡單、體積小、抗干擾性能好,若要滿足更高的精度要求,還須進行適當改進。在某些特殊場合的應用中,還要考慮超聲波的人射角、反射角以及超聲波傳播介質的密度、表面光滑度等因素。本系統(tǒng)不僅適用于距離的測量,還適用于水文液位測量和汽車間間距的測量,應用范圍較廣。
文章版權歸西部工控xbgk所有,未經許可不得轉載。