一種高精度超聲波測距系統(tǒng)研究
摘要:介紹了一種以單片機(jī)AT89S52為核心,同時用74LS04驅(qū)動超聲波發(fā)射探頭,用CX20106A對接收信號進(jìn)行放大、濾波、檢波并輸出負(fù)脈沖的低成本、高精度超聲波測距系統(tǒng)的硬件和軟件設(shè)計方法。實驗證明,這套超聲波測距系統(tǒng)軟硬件設(shè)計合理、抗干擾能力強(qiáng)、實時性好。
關(guān)鍵詞:超聲波;測距;單片機(jī);高精度
0 引言
隨著科學(xué)技術(shù)的快速發(fā)展,超聲波在測距儀中的應(yīng)用越來越廣。但就目前技術(shù)水平來說,人們可以具體利用的測距技術(shù)還十分有限,因此,超聲波測距還是一個正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。為了能順利地完成汽車的停放,應(yīng)用測距電路能更準(zhǔn)確、即時地得到汽車與障礙物的距離。
智能機(jī)器人進(jìn)入人們的家庭不再是科幻片里面的情節(jié),現(xiàn)在已經(jīng)有很多機(jī)器人開始普及,如智能清潔機(jī)器人、智能防盜機(jī)器人等。而這些機(jī)器人是需要感覺周圍的環(huán)境來做出判斷的,測距系統(tǒng)就能發(fā)揮很大的作用。因此,設(shè)計高穩(wěn)定性、高精度的超聲波測距儀就顯得特別重要。
1 超聲波測距原理
和蝙蝠探測障礙物的方法一樣,用超聲波測距時,先由超聲波測距儀向前方發(fā)射超聲波,超聲波在空氣中直線傳播。當(dāng)前方有障礙物時,超聲波發(fā)生反射并被接收端接收。這樣,通過比較反射回來的超聲波與發(fā)射超聲波的時間差,就可以計算出測距儀到阻礙物之間的距離。
反射超聲波與發(fā)射超聲波的時間差比較容易獲取,且計算只與超聲波在空氣中的傳播速度有關(guān),因此,這種方法將得到普遍應(yīng)用。若超聲波以速度v在空氣中傳播,遇到物體后反射,由接收器接收的時間差為t,那么,由s=vt/2,就可以計算出所測距離。但是,超聲波也是一種聲波,其聲速v與溫度有關(guān),如果測距精度要求很高,就需要通過溫度補(bǔ)償?shù)姆椒右孕U?br />
2 系統(tǒng)的總體設(shè)計
超聲波測距系統(tǒng)的整個系統(tǒng)由單片機(jī)來控制。啟動測量時,由單片機(jī)發(fā)出一個控制信號去觸發(fā)發(fā)射電路,使發(fā)射電路起振,同時驅(qū)動超聲波發(fā)射器發(fā)射出一串超聲波脈沖(六個脈沖),并同時啟動單片機(jī)的定時計數(shù)器開始計數(shù),也就是開始測量渡越時間。當(dāng)這些脈沖到達(dá)被測目標(biāo)時,將發(fā)生反射,并經(jīng)空氣傳播被超聲波接收器接收,再由放大電路進(jìn)行選頻放大。接收到的第一個脈沖去觸發(fā)單片機(jī)的外部中斷,使定時計數(shù)器停止計數(shù),這樣,根據(jù)計數(shù)器的值就可以算出時間。
2.1 系統(tǒng)硬件設(shè)計
2.1.1 超聲波發(fā)射電路
超聲波傳感器利用壓電效應(yīng)的原理將電能和超聲波相互轉(zhuǎn)化。其發(fā)射電路原理圖如圖1所示。該發(fā)射電路主要由反相器74LS04和超聲波發(fā)射換能器構(gòu)成。單片機(jī)的P2.1端口輸出的方波信號一路經(jīng)一級反向器后送到超聲波換能器的一個電極,另一路經(jīng)兩級反向器后送到超聲波換能器的另一個電極,用這種推挽形式將方波信號加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采用兩個反向器并聯(lián),可以提高驅(qū)動能力。上位電阻R1、R2一方面可以提高反向器74LS04輸出高電平的驅(qū)動能力;另一方面,還可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時間。
2.1.2 超聲波接收電路
集成電路CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器。考慮到紅外遙控常用的38 kHz載波頻率與測距的40 kHz超聲波頻率較為接近,設(shè)計時可以利用它制作超聲波檢測接收電路,圖2所示就是本文的超聲波接收電路。實驗證明,利用CX20106A接收超聲波,具有很好的靈敏度和較強(qiáng)的抗干擾能力。另外,適當(dāng)更改電容C4的大小,還可以改變接收電路的靈敏度和抗干擾能力。
2.2 超聲波測距的軟件設(shè)計
超聲波測距的原理為超聲波發(fā)生器T在某一時刻發(fā)出一個57 603 Hz的超聲波信號后,將立即啟動定時計數(shù)器和外部中斷。當(dāng)這個超聲波遇到被測物體后反射回來,就被超聲波接收器R所接收。此時,CX20106A會產(chǎn)生一個負(fù)脈沖觸動外部中斷,同時讀出并保存計時器寄存器的值,關(guān)閉外部中斷,同時測量溫度,計算超聲波速度、測量距離。如果測量距離大于23 cm或是沒有接收到回波,就再發(fā)送40 kHz的超聲波驅(qū)動脈沖,重新測量。
然后再根據(jù)前面所述原理計算距離,計算公式為:
S=T(s×100)/2-0.75 (1)
式中,S為所測距離,單位為cm;T為發(fā)射超聲波與接收超聲波的時間差,單位為s;s為超聲波速度,單位為m/s,由于發(fā)射超聲波與接收超聲波期間,超聲波傳播的距離為測量距離的兩倍,所以要除以2;后面的0.75為實驗得出的補(bǔ)償值。其補(bǔ)償公式如下:
s=331.4+0.61temp (2)
式中,temp為環(huán)境溫度;s為超聲波傳播速度,單位為m/s。
3 系統(tǒng)測試
筆者通過實驗對該超聲波測距系統(tǒng)進(jìn)行了實驗,表1所列是實驗所得出的實際測量數(shù)據(jù)。
4 結(jié)語
本文對低成本、高精度超聲波測距儀進(jìn)行了全面的介紹,給出了超聲波測距的軟硬件設(shè)計方法。采用AT89S52單片機(jī)作為核心處理單元來降低整體儀器的體積和成本。本設(shè)計使用74LS04并以推挽形式驅(qū)動超聲波發(fā)射探頭,同時選用CX20106A對接收信號進(jìn)行放大、濾波、檢波并輸出負(fù)脈沖,完成超聲波測距儀自動控制,由超聲波驅(qū)動頻率檢測距離。最后在單片機(jī)的控制下,將測量距離和環(huán)境溫度通過液晶屏顯示出來。