基于單片機的超聲波測距系統(tǒng)的研究與設計
此外,還有幾點需要說明的是:
(1)定時器T1之所以是65 ms溢出是因為它是16位定時/計數(shù)器(65 535)。在使用12MHz的晶振時,由于周期T=1/f=1/[(12×106)/12]=1μs,則一個機器周期是1μs,計數(shù)器每65 ms計數(shù)器溢出。
(2)本設計中40 kHz方波的產(chǎn)生采用軟件方式實現(xiàn):控制P1.0口輸出12μs的高電平,再輸出13μs的低電平,這樣得到一個周期的40 kHz的脈沖,再循環(huán)發(fā)送8次。
(3)在CPU停止發(fā)送脈沖群后,由于電阻尼,換能器不能立即停止發(fā)送超聲波,在一段時間內(nèi)仍然會發(fā)送,故這段時間內(nèi)不可立即開啟INT0接收回波,要等待一段后以避免發(fā)送端的部分直射波未經(jīng)被測物就直接繞射到接收端,這段被稱為“虛假反射波”。從發(fā)射開始一直到“虛假反射波”結(jié)束這段時間,不開放INT0中斷申請,可有效躲避干擾,但也會造成測試的“盲區(qū)”。本次設為1 ms,假定溫度為20℃,則測量盲區(qū)為s=1×10-3×344/2≈17.2 cm。
(4)最大測試距離將取決于:兩次脈沖群發(fā)送之間的最小時間間隔和脈沖的能量。一般來說,發(fā)射端脈沖個數(shù)越多,能量越大,所能測的距離也越遠。但也不是無限制的,本次讀取定時器T0的計數(shù)值,最大能測試的距離是T0尚沒溢出,故在溫度20℃下,最大測試距離為s=vt/2=65 535×344/(2×106)=11.272 m。在一些周期性發(fā)射超聲波設備中,如果要測試的最大距離是10 m,則兩次脈沖群之間的最小時間為t=2×s/v=2×10/344≈60:ms 。
5 結(jié)束語
為了驗證系統(tǒng)的測量精度,在實驗室進行了實地測量。利用本系統(tǒng)對20~1 000 cm范圍進行了多次測試,經(jīng)補償后最大誤差達2 cm,線性度、穩(wěn)定性和重復性都比較好。系統(tǒng)具有結(jié)構簡單、體積小、實時LCD顯示和報警、帶溫度補償、抗干擾性能好等優(yōu)點。系統(tǒng)的誤差主要來自于發(fā)射探頭發(fā)出的超聲波是呈喇叭狀擴散傳播、被測物的表面不光滑且不一定垂直于兩探頭的軸線而導致所反射回來的波也許是從不同點獲得,此外電子元器件自身的時延、干擾等也造成一定影響??梢愿鶕?jù)具體場合,選擇合適功率的探頭,以及調(diào)整程序中脈沖的頻率、寬度和個數(shù)等提高精度或測量距離,擴大系統(tǒng)的應用范圍。
評論