超聲波測距模塊的設(shè)計(jì)與實(shí)現(xiàn)
摘要:本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)以MCS-51單片機(jī)為核心的超聲波測距模塊。該模塊由超聲波發(fā)射單元、超聲波接收單元、溫度測量單元、顯示單元和ISP下載單元等組成,由單片機(jī)產(chǎn)生超聲波的發(fā)射信號并對其傳播時(shí)間進(jìn)行測量,依據(jù)超聲波在空氣中的傳播特性,換算出距離數(shù)據(jù),從而實(shí)現(xiàn)測量距離的目的。設(shè)計(jì)中采用LM386作為超聲波的發(fā)射驅(qū)動(dòng),采用集成芯片CX20106作為超聲波接收單元,結(jié)構(gòu)簡潔,集成度高。通過實(shí)驗(yàn)表明,該模塊性能可靠,能較準(zhǔn)確地測出與障礙物之間的距離,達(dá)到了設(shè)計(jì)要求。
關(guān)鍵詞:超聲波測距;MCS-51單片機(jī);LM386;CX20106
0 引言
在多數(shù)項(xiàng)目研發(fā)中,距離測量顯得越來越重要,常用的測距方式主要有雷達(dá)測距、紅外測距、激光測距和超聲測距等4種。雷達(dá)測距對天氣的依賴性較強(qiáng),且成本較高;紅外測距測量范圍窄;激光測距精度高、抗干擾力強(qiáng)、但成本高,且光學(xué)系統(tǒng)需細(xì)心維護(hù);超聲波測距指向性強(qiáng)、傳輸距離遠(yuǎn)、受環(huán)境影響小、傳播時(shí)間容易檢測,而且超聲波傳感器結(jié)構(gòu)簡單、性能可靠、成本低、易于集成,因此本文采用超聲波方式進(jìn)行距離測量。
1 超聲波測距原理
超聲波發(fā)生器內(nèi)部有兩個(gè)壓電晶片和一個(gè)共振板,當(dāng)兩極外加脈沖信號的頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將發(fā)生共振,并帶動(dòng)共振板振動(dòng),從而產(chǎn)生超聲波;同理,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片產(chǎn)生振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號。
測距原理如圖1所示。
被測距離。式中:s為超聲波傳播距離;h為發(fā)射探頭與接收探頭之間的距離。
由于s遠(yuǎn)大于h,因此可近似認(rèn)為d=s,則d=s=ct/2,t為發(fā)射超聲波與接收超聲波的時(shí)間間隔,c為超聲波在空氣中的傳播速度。
在空氣中,常溫下超聲波的傳播速度是334m/s,但其傳播速度c易受空氣中溫度的影響,聲速與溫度關(guān)系如表1所示,由此可修正超聲波傳播速度
可見,只要測得超聲波發(fā)射和接收回波的時(shí)間差t以及環(huán)境溫度T,就能得到較為精確的距離。
2 方案設(shè)計(jì)
2.1 電路設(shè)計(jì)
設(shè)計(jì)的超聲測距模塊由超聲波發(fā)射單元、超聲波接收單元、溫度測量單元、液晶顯示單元和ISP下載單元等部分構(gòu)成,系統(tǒng)框圖如圖2所示。
2.1.1 單片機(jī)單元
單片機(jī)是整個(gè)系統(tǒng)的控制核心,本文選用AT89S51,測量時(shí),由單片機(jī)輸出40 kHz左右的脈沖信號,驅(qū)動(dòng)超聲波發(fā)射器發(fā)出超聲波脈沖,同時(shí)啟動(dòng)單片機(jī)計(jì)時(shí)器,開始計(jì)時(shí)。超聲波達(dá)到目標(biāo)時(shí)回傳,經(jīng)空氣傳播被超聲波接收器接收,此時(shí)計(jì)時(shí)停止,經(jīng)計(jì)算可得超聲波從發(fā)射到接收的時(shí)間間隔t,從而得到距離數(shù)據(jù)。
2.1.2 超聲波發(fā)射單元
考慮到單片機(jī)端口驅(qū)動(dòng)能力有限,本文采用LM386對輸出信號進(jìn)行功率放大,LM386多用于音頻放大,也可用于超聲波發(fā)射。如圖3所示,LM386第1腳和第8腳之間串接的E1、R1,可使電路獲得較大的增益,T0為單片機(jī)輸入的脈沖信號,經(jīng)功率放大后由第5腳輸出,驅(qū)動(dòng)探頭發(fā)射超聲波。
2.1.3 超聲波接收單元
為了順利接收回波信號,本文采用索尼公司生產(chǎn)的集成芯片CX20106,如圖4所示,CX20106是一款紅外線檢波接收的專用芯片,由于紅外遙控常用的載波頻率38kHz與超聲波頻率40kHz比較接近,而且CX20106內(nèi)部設(shè)置的濾波器中心頻率f0可由其5腳外接電阻調(diào)節(jié),范圍為30~60 kHz,因此本文采用它來做接收電路。
回波信號先經(jīng)過CX20106內(nèi)部的前置放大器和限幅放大器,將信號調(diào)整到適當(dāng)?shù)姆?,由濾波器進(jìn)行頻率選擇,濾除干擾信號,再經(jīng)整形,送給輸出端7腳,7腳與單片機(jī)INT0連接,當(dāng)接收到與濾波器中心頻率相符的回波信號時(shí),輸出端7腳即輸出低電平,觸發(fā)中斷。
2.1.4 溫度測量、液晶顯示與ISP單元
溫度測量單元選用1Wire總線器件DS18B20作為傳感器,實(shí)現(xiàn)對溫度數(shù)據(jù)的采集,液晶模塊實(shí)現(xiàn)測量數(shù)據(jù)的顯示,ISP單元實(shí)現(xiàn)程序代碼的在系統(tǒng)下載,電路圖從略。
2.2 軟件設(shè)計(jì)
軟件部分主要包括主程序和中斷服務(wù)子程序,如圖5所示。主程序主要完成系統(tǒng)初始化、溫度讀取和超聲波發(fā)射;中斷服務(wù)子程序主要完成計(jì)數(shù)值的讀取、距離計(jì)算、輸出顯示等工作。
3 實(shí)驗(yàn)結(jié)果及分析
表2是利用本文的測距模塊實(shí)際測量的結(jié)果。由表中數(shù)據(jù)可見,在30cm范圍內(nèi)誤差較大,這是由于超聲波信號的發(fā)射必須有一個(gè)上升時(shí)間,如果距離太近單片機(jī)難以及時(shí)處理回波信號,無法正確檢測回波到達(dá)時(shí)間,因而測量誤差明顯增加;而距離在30em以上時(shí),由于引入溫度補(bǔ)償單元,因而誤差相對較小。
4 結(jié)束語
本文設(shè)計(jì)的超聲波測距模塊,采用了集成元件LM386、CX20106作為發(fā)射和接收的核心器件,并引入了DSl8B20作為溫度補(bǔ)償單元,因此結(jié)構(gòu)簡單、集成度較高、可靠性較強(qiáng),通過實(shí)驗(yàn)驗(yàn)證,測量結(jié)果與實(shí)際距離相近,基本滿足測量要求。