超聲波測距系統(tǒng)方案研究與設(shè)計
其中,TC1602第4腳RS為寄存器選擇,第5腳RW為讀寫信號線,第6腳E為使能端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。這里要注意的是,為了布線方便,單片機(jī)端的D0~D7是接到LCD/602的D1~D0,正好相反,因此在編寫軟件時需要做處理,使讀取正確。本文引用地址:http://www.ex-cimer.com/article/194240.htm
(3)報警部分。
采用一個蜂鳴器,由P1.2輸出一定頻率的信號,在連接到蜂鳴器之前,經(jīng)過一個三極管9 012的放大。報警部分的連線,如圖6所示。
(4)電源電路:220 V經(jīng)9 V變壓器降壓后,再經(jīng)D1~D4橋式整流和7 805穩(wěn)壓后給電路各部分供電。
(5)晶振電路:采用12 MHz的晶振。
4 軟件
系統(tǒng)軟件設(shè)計采用模塊化設(shè)計,主要包括主程序設(shè)計、T1中斷服務(wù)子程序、INT0外部中斷服務(wù)子程序、測溫子程序、距離計算子程序、顯示子程序、延時子程序和報警子程序設(shè)計等。
系統(tǒng)軟件編制時應(yīng)考慮相關(guān)硬件的連線,同時還要進(jìn)行存儲空間、寄存器以及定時器和外部中斷引腳的分配和使用。本設(shè)計中P1.0引腳連接到7 HC04推挽放大電路再連接到超聲波發(fā)射傳感器,P1.0引腳輸出的將是軟件方式產(chǎn)生的40 kHz方波,而P3.2(INT0)則被用來接收回波。定時器T1,T0均工作在工作方式1,為16位計數(shù),T1定時器被用來開啟一次測距過程以它的溢出為標(biāo)志開始一個發(fā)射測量循環(huán),T0定時器是用來計算脈沖往返時間,它們的初值均設(shè)為0。
系統(tǒng)初始化后就啟動定時器T1從0開始計數(shù),此時主程序進(jìn)入等待,當(dāng)?shù)竭_(dá)65 ms時T1溢出進(jìn)入T1中斷服務(wù)子程序;在T1中斷服務(wù)子程序中將啟動一次新的超聲波發(fā)射,此時將在P1.0引腳上開始產(chǎn)生40 kHz的方波,同時開啟定時器T0計時,為了避免直射波的繞射,需要延遲1 ms后再開INT0中斷允許;INT0中斷允許打開后,若此時P3.2(INT0)引腳出現(xiàn)低電平則代表收到回波信號,將提出中斷請求進(jìn)入INT0中斷服務(wù)子程序,在INT0中斷服務(wù)子程序中將停止定時器T0計時,讀取定時器T0時間值到相應(yīng)的存儲區(qū),同時設(shè)置接收成功標(biāo)志;主程序一旦檢測到接收成功標(biāo)志,將調(diào)用測溫子程序,采集超聲波測距時的環(huán)境溫度,并換算出準(zhǔn)確的聲速,存儲到RAM存儲單元中;單片機(jī)再調(diào)用距離計算子程序進(jìn)行計算,計算出傳感器到目標(biāo)物體之間的距離;此后主程序調(diào)用顯示子程序進(jìn)行顯示;若超過設(shè)定的最小報警距離還將啟動揚聲器報警;當(dāng)一次發(fā)射、接收、顯示的過程完成后,系統(tǒng)將延遲100 ms重新讓T1置初值,再次啟動T1以溢出,進(jìn)入下一次測距。如果由于障礙物過遠(yuǎn),超出量程,以致在T0溢出時尚未接收到回波,則顯示“ERROR”重新回到主流程進(jìn)入新一輪測試。主程序和定時器T1、外部中斷INT0中斷服務(wù)子程序的框圖分別,如圖7~圖9所示。
此外,還有幾點需要說明的是:
(1)定時器T1之所以是65 ms溢出是因為它是16位定時/計數(shù)器(65 535)。在使用12MHz的晶振時,由于周期T=1/f=1/[(12×106)/12]=1μs,則一個機(jī)器周期是1μs,計數(shù)器每65 ms計數(shù)器溢出。
(2)本設(shè)計中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ū)”。本次設(shè)為1 ms,假定溫度為20℃,則測量盲區(qū)為s=1×10-3×344/2≈17.2 cm。
(4)最大測試距離將取決于:兩次脈沖群發(fā)送之間的最小時間間隔和脈沖的能量。一般來說,發(fā)射端脈沖個數(shù)越多,能量越大,所能測的距離也越遠(yuǎn)。但也不是無限制的,本次讀取定時器T0的計數(shù)值,最大能測試的距離是T0尚沒溢出,故在溫度20℃下,最大測試距離為s=vt/2=65 535×344/(2×106)=11.272 m。在一些周期性發(fā)射超聲波設(shè)備中,如果要測試的最大距離是10 m,則兩次脈沖群之間的最小時間為t=2×s/v=2×10/344≈60:ms 。
5 結(jié)束語
為了驗證系統(tǒng)的測量精度,在實驗室進(jìn)行了實地測量。利用本系統(tǒng)對20~1 000 cm范圍進(jìn)行了多次測試,經(jīng)補(bǔ)償后最大誤差達(dá)2 cm,線性度、穩(wěn)定性和重復(fù)性都比較好。系統(tǒng)具有結(jié)構(gòu)簡單、體積小、實時LCD顯示和報警、帶溫度補(bǔ)償、抗干擾性能好等優(yōu)點。系統(tǒng)的誤差主要來自于發(fā)射探頭發(fā)出的超聲波是呈喇叭狀擴(kuò)散傳播、被測物的表面不光滑且不一定垂直于兩探頭的軸線而導(dǎo)致所反射回來的波也許是從不同點獲得,此外電子元器件自身的時延、干擾等也造成一定影響??梢愿鶕?jù)具體場合,選擇合適功率的探頭,以及調(diào)整程序中脈沖的頻率、寬度和個數(shù)等提高精度或測量距離,擴(kuò)大系統(tǒng)的應(yīng)用范圍。
濾波器相關(guān)文章:濾波器原理
濾波器相關(guān)文章:濾波器原理
評論