林二妹
(閩南理工學(xué)院, 福建 石獅 362700)
超聲波是指頻率高于20Hz的機(jī)械波,是由機(jī)械振動(dòng)產(chǎn)生的,可在不同介質(zhì)中以不同的速度傳播.由于超聲波指向性強(qiáng),能量消耗緩慢,而且在介質(zhì)中傳播的距離較遠(yuǎn),反射能力較強(qiáng),另外,測量時(shí)與被測物體無直接的接觸,還能清晰穩(wěn)定的顯示出測量結(jié)果,所以超聲波經(jīng)常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實(shí)現(xiàn).超聲測距是一種非接觸式的檢測方式.對(duì)于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力.因此在液位測量、車輛自動(dòng)導(dǎo)航等方面有著廣泛的應(yīng)用.特別是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號(hào)中包含的沿傳播方向上的結(jié)構(gòu)信息很容易檢測出來,具有很高的分辨力,因而其準(zhǔn)確度也較其它方法為高.
超聲波測距的原理是利用超聲波的發(fā)射和接收,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播距離.實(shí)現(xiàn)超聲波測距的方法有多種,如相位檢測法、聲波幅值檢測法和渡越時(shí)間檢測法等.
本測距系統(tǒng)采用超聲波渡越時(shí)間檢測法,其原理為: 檢測從超聲波發(fā)射器發(fā)出的超聲波,經(jīng)氣體介質(zhì)的傳播到接收器的時(shí)間,即渡越時(shí)間.渡越時(shí)間與氣體中的聲速相乘,就是聲波傳輸?shù)木嚯x.超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)單片機(jī)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí).再由單機(jī)計(jì)算出距離,送LED數(shù)碼管顯示測量結(jié)果.
超聲波在空氣中的傳播速度隨溫度變化,其對(duì)應(yīng)值如表1,根據(jù)計(jì)時(shí)器記錄的時(shí)間t(見圖1),就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s) ,即s=v*t/2.
表1 聲速與溫度的關(guān)系
圖1 超聲波測距時(shí)序圖
單片機(jī)超聲測距系統(tǒng)框圖如圖2.該系統(tǒng)由單片機(jī)控制模塊、超聲波發(fā)射電路和接收電路、顯示電路、供電電源及報(bào)警電路組成[1].
圖2 系統(tǒng)設(shè)計(jì)框圖
本設(shè)計(jì)主要包括單片機(jī)控制系統(tǒng)、超聲波發(fā)射電路和接收電路、顯示電路、供電電源、報(bào)警輸出電路等幾部分[2].
超聲波測距單片機(jī)控制系統(tǒng)采用AT89S51為核心芯片,系統(tǒng)晶振采用12 MHz的晶振.各端口定義為:P2.7為輸出超聲波換能器所需的40 kHz的方波信號(hào),P3.5為監(jiān)測超聲波接收電路輸出的返回信號(hào).顯示電路采用三位一體LED數(shù)碼管,P2口為段碼輸出, P3.2、P3.3、P3.4為位碼輸出端,P3.1、P0.2為報(bào)警控制端口,P3.6為數(shù)值調(diào)整鍵,P3.7為功能鍵[3].該系統(tǒng)如圖3所示.
圖3 超聲波測距單片機(jī)控制系統(tǒng)
3.2.1 超聲波發(fā)射電路
超聲波發(fā)射電路如圖4所示,超聲波發(fā)射電路由電阻R1、三極管BG1、超聲波脈沖變壓器B及超聲波發(fā)送頭T40構(gòu)成,超聲波脈沖變壓器的作用是提高加載到超聲波發(fā)送頭兩端的電壓,以提高超聲波的發(fā)射功率,從而提高測量距離.
由AT89S51單片機(jī)的P2.7輸出40 kHz的方波,經(jīng)三極管BG1推動(dòng)超聲波脈沖變壓器,在脈沖變壓器次級(jí)形成60 VP-P的電壓,加載到超聲波發(fā)送頭上,驅(qū)動(dòng)超聲波發(fā)射頭發(fā)射超聲波.
圖4 超聲波發(fā)射電路
3.2.2 超聲波接收電路
超聲波接收電路如圖5所示,接收電路由BG2、BG3組成的兩級(jí)放大電路構(gòu)成.超聲波的檢波電路、比較整形電路由C8、D5、D6及BG4組成.發(fā)送出的超聲波,遇到障礙物后,產(chǎn)生回波,反射回來的回波由超聲波接收頭接收到.由于反射回來的超聲波信號(hào)非常微弱,所以接收到的信號(hào)加到BG2、BG3組成的兩級(jí)放大器上進(jìn)行放大.每級(jí)放大器的放大倍數(shù)為70倍.放大的信號(hào)通過I N 4148檢波二極管檢波得到解調(diào)后的信號(hào),最后輸出一負(fù)跳變,輸入單片機(jī)的P3.5腳.
圖5 超聲波接收電路
顯示電路采用三位一體LED 數(shù)碼管顯示所測距離值,如圖6.數(shù)碼管采用動(dòng)態(tài)掃描顯示,段碼輸出端口為單片機(jī)的P2口,位碼輸出端口分別為單片機(jī)的P3.4、P3.2、P3.3口,數(shù)碼管位驅(qū)運(yùn)用PNP三極管要S8550驅(qū)動(dòng).
圖6 顯示部分電路結(jié)構(gòu)
供電電源電路采用LM7805集成穩(wěn)壓器作為穩(wěn)壓器件,220 V電源經(jīng)降壓、整流、濾波后送入LM7805穩(wěn)壓,輸出端接一個(gè)470 uF和0.1 uF電容濾除紋波,得到+5 V穩(wěn)壓電源,電路如圖7所示.同時(shí)為調(diào)試系統(tǒng)方便,供電方式另采用由電腦USB接口供電.
圖7 供電電源電路
為提高測距系統(tǒng)的實(shí)用性,本測距系統(tǒng)的報(bào)警輸出提供開關(guān)量信號(hào)及聲響信號(hào)兩種方式.
方式一:報(bào)警信號(hào)由單片機(jī)P3.1端口輸出,繼電器控制,可驅(qū)動(dòng)較大的負(fù)載,電路由電阻R6、三極管BG9、繼電器JDQ組成,當(dāng)測量值低于事先設(shè)定的報(bào)警值時(shí),繼電器吸合,測量值高于設(shè)定的報(bào)警值時(shí),繼電器斷開.
方式二:報(bào)警信號(hào)由單片機(jī)P0.2口輸出,提供聲響報(bào)警信號(hào),電路由電阻R7、三極管BG8、蜂鳴器BY組成,當(dāng)測量值低于事先設(shè)定的報(bào)警值時(shí),蜂鳴器發(fā)出“滴、滴、滴…..”報(bào)警聲響信號(hào),測量值高于設(shè)定的報(bào)警值時(shí),停止發(fā)出報(bào)警聲響.報(bào)警輸出電路如圖8.
圖8 報(bào)警輸出電路
單片機(jī)超聲波測距系統(tǒng)的軟件設(shè)計(jì)采用C語言編程.設(shè)計(jì)主要由主程序、超聲波發(fā)生子程序、超聲波接收程序及顯示子程序幾部分組成[4].超聲波測距程序流程圖如圖9.
圖9 超聲波測距程序流程圖
本設(shè)計(jì)主程序首先是對(duì)系統(tǒng)初始化,設(shè)定時(shí)器0為計(jì)數(shù),1為定時(shí).置位總中斷允許位EA.進(jìn)行程序主程序后,進(jìn)行定時(shí)測距判斷,當(dāng)測距標(biāo)志位EC=1時(shí),測量一次,程序設(shè)計(jì)超聲波測距頻度是4~5次/秒.測距間隔中,整個(gè)程序主要進(jìn)行循環(huán)掃描顯示測量結(jié)果.當(dāng)調(diào)用超聲波測距子程序后,首先由單片機(jī)產(chǎn)生4個(gè)頻率為38.46 kHz超聲波脈沖,加載到超聲波發(fā)頭上.超聲波頭發(fā)送完超聲波后,計(jì)時(shí)器T0開始計(jì)時(shí),為了避免超聲波從發(fā)射頭直接傳送到接收頭引起的直射波觸發(fā),這時(shí),單片機(jī)延時(shí)約1.5~2 ms后,才啟動(dòng)對(duì)單片機(jī)P3.5腳的電平判斷程序.當(dāng)檢測到P3.5腳的電平由高轉(zhuǎn)為低時(shí),T0停止計(jì)時(shí)[5].由于單片機(jī)采用的是12 MHz的晶振,計(jì)時(shí)器每計(jì)一個(gè)數(shù)就是1μs,當(dāng)超聲波測距子程序檢測到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來回所用的時(shí)間)按公式計(jì)算,即可得被測物體與測距儀之間的距離.
編寫程序與調(diào)試,用編程器將KEIL軟件對(duì)應(yīng)源程序編譯生成.HEX文件燒寫到AT89S51單片機(jī)中.按圖焊接硬件電路,焊接完后單獨(dú)測試確保整個(gè)系統(tǒng)能正常工作,最后將寫好的單片機(jī)插入到測距板上,通電后將測距板的超聲波頭對(duì)著墻面往復(fù)移動(dòng),看數(shù)碼管的顯示結(jié)果會(huì)不會(huì)變化,在測量范圍內(nèi)能否正常顯示.如果一直顯示“---”,則需將下限值增大.本測距板1 s測量4~5次,超聲波發(fā)送功率較大時(shí),測量距離遠(yuǎn),則相應(yīng)的下限值(盲區(qū))應(yīng)設(shè)置為高值.試驗(yàn)板中的聲速?zèng)]有進(jìn)行溫度補(bǔ)償,聲速值為340 m/s,該值為15℃時(shí)的超聲波值.
經(jīng)測試表明,本系統(tǒng)實(shí)現(xiàn)了預(yù)期的控制要求.
本系統(tǒng)利用單片機(jī)AT89S51實(shí)現(xiàn)超聲波測距功能,該系統(tǒng)設(shè)計(jì)合理、工作穩(wěn)定、性能良好、檢測速度快、易于做到實(shí)時(shí)控制,并且在測量精度方面能達(dá)到工業(yè)的要求.可應(yīng)用于汽車的倒車?yán)走_(dá)、機(jī)器人自動(dòng)避障行走、建筑施工工地以及一些工業(yè)現(xiàn)場,如:液位、井深、管道長度等場合.該設(shè)計(jì)具有很大的現(xiàn)實(shí)意義.
[1] 沈紅衛(wèi).基于單片機(jī)智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[2] 趙建領(lǐng),薛園園.51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解[M].北京:電子工業(yè)出版社,2009.
[3] 樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例[M]. 北京:北京航空航天大學(xué)出版社,2003.
[4] 楊國田,白 焰,董 玲.51單片機(jī)實(shí)用C語言程序設(shè)計(jì)[M].北京:中國電力出版社,2009.
[5] 李鳴華,余水寶.單片機(jī)在超聲波料位測量中的應(yīng)用[J].電子技術(shù)應(yīng)用,1998,24(9):14-16.