王晉
(西安航空學院 陜西 西安 710077)
基于ATmega16單片機的超聲測距系統研究
王晉
(西安航空學院 陜西 西安 710077)
隨著超聲技術的不斷發展,超聲測距技術不斷成熟。本文針對目前超聲測距的應用情況,采用ATmega16單片機作為主控芯片,設計了一種的超聲測距系統。該系統以空氣中超聲波的傳播速度為確定條件,利用發出超聲波和返回波之間的時間差來測量待測距離。系統的硬件電路主要由發射電路、接收電路、檢測電路、顯示電路、溫度電路等組成,最后對超聲測距軟件的實現進行了編程。該系統采用非接觸式測量方法,具有很好的抗干擾能力,并且具有使用方便、價格便宜等優點。
ATmega16;超聲測距;超聲波;非接觸式測量
隨著計算機技術、自動化技術、工業控制技術以及工業機器人技術的發展,如何進行測距和識別成為人們越來越關心的問題。傳統的接觸式測量儀器是利用卷尺等進行測量,這種測量方法在復雜的結構中具有測量不準確以及測量困難等缺點。在非接觸測距儀器中,現在常用的有超聲波、激光和雷達測距[1]。但由于激光和雷達的造價高,并不利于普及。相比之下,超聲波測距具有測量準確、指向性強、信息處理可靠等優點,已經越來越引起人們的重視。目前,超聲測距在機器人避障、自動測距、無損檢測、超聲定位以及汽車倒車等方面已經有了廣泛的應用[2]。
文中介紹了一種以ATmega16單片機為核心,具有液晶顯示和溫度補償的低成本、高精度、微型化的超聲測距系統。
1.1超聲測距系統的硬件組成
系統的主控芯片為AVR單片機中的ATmega16,ATmega16是基于增強的AVR RISC結構的低功耗8位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega16的數據吞吐率高達1MIPS/MHz,從而可以減緩系統在功耗和處理速度之間的矛盾[3]。
本設計主要由ATmega16單片機、溫度電路、液晶顯示電路、超聲波發射電路、超聲波接收電路、檢測電路、電源電路等部分,系統總體設計如圖1所示。

圖1 總體設計思想
超聲波發射電路采用ATmega16中PD6口通過編程的方式輸出40 kHz的脈沖信號。由于單片機管腳的輸出功率較低,難以驅動超聲傳感器發射足夠遠的超聲波,故在超聲波發射電路中加上功率放大電路。
從接收探頭接收回來的回波也很微弱,并且回波里還存在較多的干擾信號,所以在接收電路中采用一個放大電路和一個帶通濾波電路。
接收電路輸出的信號是一個正弦波信號,但單片機所接受的中斷信號為下降沿觸發信號,所以通過一個比較器,將正弦信號轉變為方波信號,用方波信號的負跳變作為單片機的中斷輸入。
顯示電路采用中文液晶顯示器,通過單片機編程將內部計數得到的時間數據轉換為距離數據,并顯示出來。
1.2超聲測距傳感器的選擇
超聲測距傳感器具有多種結構,具體可分為直探頭、斜探頭、表面波探頭、收發一體式探頭和收發分體式雙探頭等。在超聲測距系統中,工作頻率越高,聲波在空氣中傳播的損失就越大,就會降低測量的距離。但是工作頻率越低,傳感器的尺寸就越大,會造成制造和安裝的困難。故本設計選取的探頭是40 kHz的收發分體式超聲傳感器TCRT16-40。
1.3超聲測距傳感器的基本原理
超聲測距的方法有脈沖回波法、共振法和頻差法。在所有的超聲測距方法中,脈沖回波法最為常用,它主要是利用超聲測距傳感器發出的聲波信號,遇到障礙物體時發生反射,反射的回波被超聲接收器接收并轉化為電信號,只要測出發出信號和接收信號之間的時間差t,就可以測得超聲測距傳感器和障礙物之間的距離d:

式中v是超聲波在氣體中的傳播速度,它與氣體的溫度有關:

式中T為空氣溫度k(絕對溫度)。
在常溫20攝氏度下,聲音在空氣中的傳播速度為344m/s。當需要精確的進行超聲測距時,需要進行溫度補償[4]。
2.1超聲波發射電路
超聲波發射電路是用ATmega16的PD6口發射一組方波脈沖信號,但是其發出的信號電流和輸出功率很低,不足以驅動超聲波傳感器發出足夠強度的超聲波信號,所以在此處加入一個功率放大電路,如圖2所示。

圖2 超聲波發射電路
本系統設計采用的是雙電源乙類互補推挽功率放大電路,Q1和Q2分別為NPN和PNP型三極管,兩個三極管的基極和發射極相互連接,信號從兩管的基極輸入,從發射極輸出,RL為負載電阻。當沒有信號輸入時,兩管的基極電位為零,所以Q1和Q2處于截止狀態;當輸入信號處于負半周時,Q1截止,Q2導通,進行功率放大;當信號處于正半周時,Q2截止,Q1導通,進行功率放大。
本系統設計時,供電電源為12 V。選取負載電阻RL為100 Ω,功放管選用8050NPN型和8550PNP型三極管,其耐壓為40 V,大于每管電源電壓的兩倍即24 V;又因為功放管集電極最大允許電流必須滿足120 mA,所以滿足設計要求。本設計的最大輸出功率Pomax=試驗證明滿足發射需要。
2.2超聲波接收電路
超聲波接收電路的作用是將超聲波傳感器中壓電晶片產生的電壓進行放大,同時將產生的干擾信號進行濾波,用來驅動后面比較器輸出電位跳變。超聲波接收電路由前置放大電路和帶通濾波電路組成,分別如圖3和圖4所示。

圖3 前置放大電路
前置放大電路的作用是將信號電壓進行放大,并抑制其他噪聲和干擾,以便達到最大的信噪比。利用反向放大器通過對Rf和R12進行調節,進而可實現調節電壓放大倍數。根據本系統需要,接收到的傳感器輸出電壓非常小,故取R12=1 kΩ,Rf=200 kΩ,即放大電路將輸入信號放大200倍。
由于超聲波遇到障礙物反射回來的信號中混有雜波和干擾脈沖,而前置放大電路在放大有用信號的同時,也會將干擾信號進行放大,于是本設計在前置放大電路的后端加入濾波電路,以去除雜波和干擾信號。又因為本設計的干擾噪聲主要是環境中的噪聲以及50 Hz的工頻干擾,所以選用LM358和外圍相應的電阻電容組成帶通濾波電路。在此電路中,前級低通濾波中,電容取1 000 pF,后級的高通濾波中,電容取0.1 μF,根據公式R=1/2πfc可得到圖4中R2=15 kΩ,R6=18 kΩ,R7=18 kΩ。為了降低運放失調電流造成的誤差,使運放同相輸入端和反向輸入端對地的直流電阻相等,可得R4=70 kΩ,R5=42 kΩ,R8=50 kΩ,R9=85 kΩ。
2.3檢測電路
檢測電路的作用是將放大濾波后的信號進行鑒別,一般通過比較器將信號與一個固定的電平相比較,輸出不同的電平來產生上升或下降沿觸發,最后轉換成數字脈沖進而觸發ATmega16的中斷引腳0,如圖5所示,本設計比較電路由比較器LM393及其外圍電阻電容組成。
其中參考電壓通過調節電阻R15和R16來進行選擇,圖5中的R14作為上拉電阻,電容C3起到簡單的濾波作用。取R15=18 kΩ和R16=18 kΩ,參考電壓就為上拉電阻R14=1 kΩ,電容C3=1 000 pF。也就是說當比較器輸入信號的電壓高于263 mV時,比較器輸出電壓為5 V;輸入信號電壓低于263 mV時,比較器輸出電壓為0 V,以此邊沿跳變來控制單片機的中斷INT0,停止計時。

圖4 帶通濾波電路

圖5 檢測電路
2.4顯示電路
本設計采用的是12864漢字圖形型液晶顯示模塊,可顯示漢字和圖形,內置8192個中文漢字(16X16點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM)。如圖6所示,液晶 12864中的數據接口DB0-DB7和單片機的PC0-PC7管腳相連接,RS、RW、E和RST管腳分別與單片機PA4、PA5、PA6和PA7管腳相連。
2.5溫度檢測電路
由于超聲波在空氣中傳播速度與空氣溫度有關,為了能夠準確計算出超聲波返回接收探頭的時間,需要進行溫度補償,進而通過軟件編程的方法將溫度對超聲波速度的影響消除。溫度檢測電路如圖7所示,其中空氣的溫度采集信號從單片機的PB1口輸入,R18為上拉電阻,電源供電電壓為5 V。當采集到的溫度通過PB1口輸入到單片機后,單片機通過式(2),進而可得到超聲波在空氣中實時的傳播速度,再通過定時器得到的時間t,可算出超聲傳感器與障礙物之間的距離。
2.6電源電路
本設計需要給單片機供5 V直流電和給發射電路供12 V直流電,故采用7805和7824兩種芯片分別為單片機和發射電路供電,如圖8所示。圖中24 V直流前有一降壓整流裝置,可將市電交流220 V通過變壓器降為交流26 V,再將交流26 V通過7824轉為直流24 V電壓。

圖6 顯示電路

圖7 溫度檢測電路

圖8 電源電路
3.1軟件設計的總體思路
本研究的軟件設計采用C語言編程,與匯編語言相比,有較好的移植性[5]。程序設計使用定時計數器0來計算回波的返回時間,并計算出超聲波傳感器與障礙物之間的距離。
3.2系統程序流程圖
系統的流程圖如圖9所示。

圖9 系統流程圖
本設計采用ATmega16單片機,能夠有效的控制超聲測距傳感器。與傳統的使用AT89C52[6]相比,具有經濟,簡單實用的特點。經驗證,此系統能夠很好工作,有較強的使用價值。
[1]張鵬,張有志.一種新型超聲測距系統[J].山東大學學報,2003,2(3):18-22.
[2]羅忠輝,黃世慶.提高超聲測距精度的方法[J].機械設計與制造,2005,1(1):109-110.
[3]丁元杰主編.單片微機原理與應用[M].北京:機械工業出版社,2003.
[4]陳瑩.基于單片機的超聲測距系統[D].武漢:華中科技大學,2004.
[5]譚浩強.C++程序設計[M].北京:清華大學出版社,1999.
[6]邊春元,李文濤.C51單片機典型模塊設計與應用 [M].北京:機械工業出版社,2008.
The ultrasonic ranging system based on ATmega16
WANG Jin
(Xi'an Aeronautical University,Xi'an 710077,China)
With the continuous development of ultrasonic technology,ultrasonic ranging technology continues to mature.In this paper,based on the current application of ultrasonic distance measurement,using ATmega16 single chip microcomputer as main control chip,a kind of ultrasonic ranging system is designed.With ultrasonic transmission speed in order to determine the conditions for the system,using a ultrasonic wave and return between the time difference to measure distance under test. System hardware circuit is mainly composed of transmitting circuit,receiving circuit,detection circuit,display circuit,temperature and other components of the circuit,finally,the implementation of ultrasonic ranging software programming.Noncontact measuring method used in this system,has the very good anti-jamming capability,and has the advantages of easy to use,the price is cheap.
ATmega16;ultrasonic distance measurement;ultrasonic;non-contact measurement
TN141
A
1674-6236(2016)16-0167-04
2015-08-28稿件編號:201508155
王 晉(1985—),男,陜西西安人,碩士,講師。研究方向:機械電子工程。