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

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

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

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

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