結(jié)合溫度補償?shù)某暡y距系統(tǒng)設(shè)計
主程序首先是對系統(tǒng)環(huán)境初始化,設(shè)定時器0為計數(shù),設(shè)定時器1定時。置位總中斷允許位EA。進(jìn)行主程序后,進(jìn)行定時測距判斷,當(dāng)測距標(biāo)志位c1=1,即進(jìn)行測量一次,程序設(shè)計中,超聲波測距頻度是2次/秒。測距間隔中,整個程序主要進(jìn)行循環(huán)顯示測量結(jié)果。當(dāng)調(diào)用超聲波測距子程序后,首先由單片機產(chǎn)生6~8個頻率為38.46kHz超聲波脈沖,加載至超聲波發(fā)送頭上。超聲波頭發(fā)送完超聲波后,立即啟動內(nèi)部計時器T0進(jìn)行計時,為了避免超聲波從發(fā)射頭直接傳送到接收頭引起的直射波觸發(fā),這時,單片機需要延時約1.5~2ms時間(這也就是超聲波測距儀會有一個最小可測距離的原因,稱之為盲區(qū)值)后,才啟動對單片機P3.7腳的電平判斷程序。當(dāng)檢測到P3.7腳的電平由高轉(zhuǎn)為低電平時,立即停止T0計時。
當(dāng)停止計時時,立刻啟動測溫程序,通過對溫度的讀取,算得此時聲速。由于采用單片機采用的是12MHz的晶振,計時器每計一個數(shù)就是1μs,當(dāng)超聲波測距子程序檢測到接收成功的標(biāo)志位后,將計數(shù)器T0中的數(shù)(即超聲波來回所用的時間)計算,即可得被測物體與測距儀之間的距離。測出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LED顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測量過程。我們知道,溫度對聲速的影響是很大的,因而應(yīng)該先測量溫度,再計算出此溫度下的聲速。
4 調(diào)試及數(shù)據(jù)分析
系統(tǒng)組裝調(diào)試時先焊接各個模塊,再進(jìn)行模塊的單獨測試,原件安裝完畢后,將寫好程序的AT89C2051機裝到測距板上,通電后將測距板的超聲波頭對著墻面往復(fù)移動,觀察數(shù)碼管在測量范圍內(nèi)能否正常顯示。超聲波發(fā)送功率較大時,測量距離遠(yuǎn),則相應(yīng)的下限值(盲區(qū))應(yīng)設(shè)置為較高值。
系統(tǒng)測距實驗時在不同的實測溫度下,整個系統(tǒng)在11個特定的距離都測量7次,共計77次測量。每組7個數(shù)據(jù),去掉一個最大值和最小值,再求其平均值,用來作為最終的測量數(shù)據(jù)。本文引用地址:http://cafeforensic.com/article/170604.htm
由圖4可見,不同的實測溫度下,在30~300cm范圍內(nèi)測量線和實際線幾乎完全重合,此時測量的精確度最高。所以本設(shè)計系統(tǒng)的可測距離為28~400cm,但是最佳測量距離為30~250cm。
5 結(jié)論
本設(shè)計完成的測距系統(tǒng)進(jìn)行了有效的溫度補償,測量精度可達(dá)0.01m,而且測量結(jié)果清晰穩(wěn)定,響應(yīng)時間短,0.5s刷新一次數(shù)據(jù),測量的實時性和連續(xù)性好。本系統(tǒng)可在做細(xì)微調(diào)整、改進(jìn)后用于多個應(yīng)用領(lǐng)域,比如簡單的移動機器人、汽車防碰撞等。
評論