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