關鍵詞 單片機AT82S51 超聲波 傳感器 測量距離
一、設計要求
設計一個超聲波測距器,可以應用于汽車倒車、建筑施工工地以及一些工業(yè)現場的位置監(jiān)控,也可用于如液位、井深、管道長度的測量等場合。要求測量范圍在0.10-3.00m,測量精度1cm,測量時與被測物體無直接接觸,能夠清晰穩(wěn)定地顯示測量結果。
二、設計思路
超聲波傳感器及其測距原理
超聲波是指頻率高于20KHz的機械波。為了以超聲波作為檢測手段,必須產生超生波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習慣上稱為超聲波換能器或超聲波探頭。超聲波傳感器有發(fā)送器和接收器,但一個超聲波傳感器也可具有發(fā)送和接收聲波的雙重作用。超聲波傳感器是利用壓電效應的原理將電能和超聲波相互轉化,即在發(fā)射超聲波的時候,將電能轉換,發(fā)射超聲波;而在收到回波的時候,則將超聲振動轉換成電信號。
超聲波測距的原理一般采用渡越時間法TOF(time of flight)。首先測出超聲波從發(fā)射到遇到障礙物返回所經歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離
測量距離的方法有很多種,短距離的可以用尺,遠距離的有激光測距等,超聲波測距適用于高精度的中長距離測量。因為超聲波在標準空氣中的傳播速度為331.45米/秒,由單片機負責計時,單片機使用12.0M晶振,所以此系統(tǒng)的測量精度理論上可以達到毫米級。
由于超聲波指向性強,能量消耗緩慢,在介質中傳播距離遠,因而超聲波可以用于距離的測量。利用超聲波檢測距離,設計比較方便,計算處理也較簡單,并且在測量精度方面也能達到要求。
超聲波發(fā)生器可以分為兩類:一類是用電氣方式產生超聲波,一類是用機械方式產生超聲波。本課題屬于近距離測量,可以采用常用的壓電式超聲波換能器來實現。
根據設計要求并綜合各方面因素,可以采用AT89S51單片機作為主控制器,用動態(tài)掃描法實現LED數字顯示,超聲波驅動信號用單片機的定時器完成,超聲波測距器的系統(tǒng)框圖如下圖所示:
超聲波測距器系統(tǒng)設計框圖
三、系統(tǒng)組成
硬件部分
主要由單片機系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測接收電路三部分組成。采用AT89S51來實現對CX20106A紅外接收芯片和TCT40-10系列超聲波轉換模塊的控制。單片機通過P1.0引腳經反相器來控制超聲波的發(fā)送,然后單片機不停的檢測INT0引腳,當INT0引腳的電平由高電平變?yōu)榈碗娖綍r就認為超聲波已經返回。計數器所計的數據就是超聲波所經歷的時間,通過換算就可以得到傳感器與障礙物之間的距離。
軟件部分
主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及顯示子程序等部分。
四、系統(tǒng)硬件電路設計
1.單片機系統(tǒng)及顯示電路
單片機采用89S51或其兼容系列。采用12MHz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減小測量誤差。單片機用P1.0端口輸出超聲波轉化器所需的40KHz方波信號,利用外中斷0口檢測超聲波接受電路輸出的返回信號。顯示電路采用簡單實用的4位共陽LED數碼管,段碼用74LS244驅動,位碼用PNP三極管驅動。單片機系統(tǒng)及顯示電路如下圖所示
單片機及顯示電路原理圖
2.超聲波發(fā)射電路原理圖參考期刊如圖所示:
超聲波發(fā)射電路原理圖
壓電超聲波轉換器的功能:利用壓電晶體諧振工作。內部結構上圖所示,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動產生超聲波,這時它就是一超聲波發(fā)生器;如沒加電壓,當共振板接受到超聲波時,將壓迫壓電振蕩器作振動,將機械能轉換為電信號,這時它就成為超聲波接受轉換器。超聲波發(fā)射轉換器與接受轉換器其結構稍有不同。
3.超聲波檢測接受電路
參考紅外轉化接收期刊的電路采用集成電路CX20106A,這是一款紅外線檢波接收的專用芯片,常用于電視機紅外遙控接收器??紤]到紅外遙控常用的載波頻率38KHz與測距超聲波頻率40KHz較為接近,可以利用它作為超聲波檢測電路。實驗證明其具有很高的靈敏度和較強的抗干擾能力。適當改變C4的大小,可改變接受電路的靈敏度和抗干擾能力。
超聲波接收電路圖
五、系統(tǒng)程序設計
超聲波測距軟件設計主要由主程序,超聲波發(fā)射子程序,超聲波接受中斷程序及顯示子程序組成。下面對超聲波測距器的算法,主程序,超聲波發(fā)射子程序和超聲波接受中斷程序逐一介紹。
1.超聲波測距器的算法設計
下圖示意了超聲波測距的原理,即超聲波發(fā)生器T在某一時刻發(fā)出的一個超聲波信號,當超聲波遇到被測物體后反射回來,就被超聲波接收器R所接受。這樣只要計算出發(fā)生信號到接受返回信號所用的時間,就可算出超聲波發(fā)生器與反射物體的距離。
距離計算公式:d=s/2=(c*t)/2
*d為被測物與測距器的距離 ,s為聲波的來回路程,c為聲速,t為聲波來回所用的時間
聲速c與溫度有關,如溫度變化不大,則可認為聲速是基本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。聲速確定后,只要測得超聲波往返時間,即可求得距離。在系統(tǒng)加入溫度傳感器來監(jiān)測環(huán)境溫度,可進行溫度被償。這里可以用DS18B20測量環(huán)境溫度,根據不同的環(huán)境溫度確定一聲速提高測距的穩(wěn)定性。為了增強系統(tǒng)的可靠性,應在軟硬件上采用抗干擾措施。
不同溫度下的超聲波聲速表
溫度/ |
-30 |
-20 |
-10 |
0 |
10 |
20 |
30 |
100 |
聲速c(m/s) |
313 |
319 |
325 |
323 |
338 |
344 |
349 |
386 |
2.主程序
主程序首先對系統(tǒng)環(huán)境初始化,設置定時器T0工作模式為16位的定時計數器模式,置位總中斷允許位EA并給顯示端口P0和P2清0。然后調用超聲波發(fā)生子程序送出一個超聲波脈沖,為避免超聲波從發(fā)射器直接傳送到接收器引起的直接波觸發(fā),需延遲0.1ms(這也就是測距器會有一個最小可測距離的原因)后,才打開外中斷0接收返回的超聲波信號。由于采用12MHz的晶振,機器周期為1us,當主程序檢測到接收成功的標志位后,將計數器T0中的數(即超聲波來回所用的時間)按下式計算即可測得被測物體與測距儀之間的距離,設計時取20℃時的聲速為344 m/s則有:
d=(C*T0)/2 =172T0/10000cm(其中T0為計數器T0的計數值)
測出距離后結果將以十進制BCD碼方式LED,然后再發(fā)超聲波脈沖重復測量過程。主程序框圖如下
3. 超聲波發(fā)生子程序和超聲波接收中斷程序
超聲波發(fā)生子程序的作用是通過P1.0端口發(fā)送2個左右的超聲波信號頻率約40KHz的方波,脈沖寬度為12us左右,同時把計數器T0打開進行計時。超聲波測距器主程序利用外中斷0檢測返回超聲波信號,一旦接收到返回超聲波信號(INT0引腳出現低電平),立即進入中斷程序。進入該中斷后就立即關閉計時器T0停止計時,并將測距成功標志字賦值1。如果當計時器溢出時還未檢測到超聲波返回信號,則定時器T0溢出中斷將外中斷0關閉,并將測距成功標志字賦值2以表示此次測距不成功。
六. 軟硬件調試及性能
超聲波測距儀的制作和調試,其中超聲波發(fā)射和接收采用Φ15的超聲波換能器TCT40-10F1(T發(fā)射)和TCT40-10S1(R接收),中心頻率為40kHz,安裝時應保持兩換能器中心軸線平行并相距4~8cm,其余元件無特殊要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。根據測量范圍要求不同,可適當調整與接收換能器并接的濾波電容C4的大小,以獲得合適的接收靈敏度和抗干擾能力。
硬件電路制作完成并調試好后,便可將程序編譯好下載到單片機試運行。根據實際情況可以修改超聲波發(fā)生子程序每次發(fā)送的脈沖寬度和兩次測量的間隔時間,以適應不同距離的測量需要。根據所設計的電路參數和程序,測距儀能測的范圍為0.07~5.5m,測距儀最大誤差不超過1cm。系統(tǒng)調試完后應對測量誤差和重復一致性進行多次實驗分析,不斷優(yōu)化系統(tǒng)使其達到實際使用的測量要求。
后續(xù)工作需實驗后才能驗證
根據參考電路和集成的電路器件測距范圍有限10m以內為好。
相關程序請點擊下載http://www.21ic.org/down/code/51.rar