摘 要:以AVR單片機(jī)ATmega16作為主控制器,結(jié)合超聲波發(fā)射、接收模塊DYP-ME007,巧妙地利用AVR單片機(jī)特有的輸入信號捕捉功能,實現(xiàn)3cm~3.5m的非接觸式距離感測,并實時顯示距離和報警。分析了DYP-ME007模塊的超聲波測距原理,給出了測距系統(tǒng)的整體設(shè)計和硬件組成結(jié)構(gòu)圖,并具體闡述了系統(tǒng)軟件設(shè)計過程并提供了程序框圖。經(jīng)實際測試證明本系統(tǒng)實現(xiàn)了超聲波測距和報警功能。
關(guān)鍵詞:AVR單片機(jī)超聲波測距倒車防撞
中圖分類號:U463文獻(xiàn)標(biāo)識碼:A文章編號:1674-098X(2011)07(b)-0113-01
1 引言
據(jù)相關(guān)調(diào)查統(tǒng)計,15%的汽車撞車事故都是因倒車時汽車的后視能力不良造成的。因此,增加汽車的后視能力顯得尤為重要。安全避免障礙物的前提是快速準(zhǔn)確地測量障礙物與汽車之間的距離。為此,本設(shè)計基于AVR單片機(jī),利用超聲波實現(xiàn)了無接觸測距的倒車?yán)走_(dá)系統(tǒng)??梢钥焖贉?zhǔn)確地測量障礙物與汽車之間的距離,幫助駕駛員掃除視野的死角和視線模糊的缺陷,使駕駛員的倒車操作更加安全有效。
2 系統(tǒng)整體設(shè)計
本設(shè)計采用以AVR單片機(jī)ATmega16[1][2]為核心,用超聲波發(fā)射、接收模塊DYP-ME007進(jìn)行測距,用4位數(shù)碼管實時顯示所測的距離,配合其他硬件電路和軟件設(shè)計方法來實現(xiàn)。Atmega16采用CMOS技術(shù)和RISC構(gòu)架,具有高速、低功耗等優(yōu)勢,而且具有定時器輸入捕捉模式。本文充分利用這些優(yōu)勢,配合實現(xiàn)了快速準(zhǔn)確測距功能。本系統(tǒng)的單片機(jī)采用4MHz計數(shù)時鐘。測距開始時由PD.7(OC2)引腳向DYP-ME007模塊發(fā)出發(fā)射超聲波測距觸發(fā)信號,DYP-ME007模塊內(nèi)部將檢測回波,一旦檢測到有回波信號則輸出回響信號送到單片機(jī)的PD.6(ICP1)引腳。單片機(jī)對接收到的回響信號進(jìn)行輸入捕捉并測算出從超聲波信號發(fā)射到單片機(jī)接受到反射信號所花費的時間t值, 經(jīng)處理后計算出被測距離s并送數(shù)碼管顯示和報警。
本系統(tǒng)工作過程及實現(xiàn)的功能為:由PC.0引腳控制的測距控制開關(guān)按下時啟動測距,再按一次則停止測距;正常工作時,由PD.1引腳控制的測距控制開關(guān)指示燈會亮,停止工作時,指示燈滅;由PA和PB端口控制的四位數(shù)碼管用來顯示所測的距離,以cm為單位,若該距離小于預(yù)置的汽車低速安全剎車距離(150cm),由PD.0引腳控制的蜂鳴器發(fā)出報警提示音,同時數(shù)碼管上顯示的數(shù)字開始閃爍,以加強(qiáng)警示作用。
3 超聲波測距原理
超聲波測距是本系統(tǒng)的關(guān)鍵環(huán)節(jié)。本系統(tǒng)的超聲波模塊DYP-ME007采取收發(fā)分離方式,使收發(fā)信號不會混疊,提高了系統(tǒng)的可靠性。
模塊中用到的傳感器為壓電型超聲波傳感器,包括一個發(fā)射傳感器和一個接收傳感器。超聲波傳感器由壓電晶片和共振板構(gòu)成,當(dāng)它的兩電極加上脈沖信號時,若其頻率等于晶片的固有頻率,壓電晶片就會發(fā)生共振從而產(chǎn)生超聲波。相反,當(dāng)共振板收到回波信號時,將壓迫壓電晶片振動,從而將機(jī)械能轉(zhuǎn)化為電能。
為防止發(fā)射信號影響回響信號,觸發(fā)信號周期一般要大于60ms。PIC控制器收到觸發(fā)信號后會產(chǎn)生8個周期的電壓為5V,頻率為40kHz的脈沖信號,經(jīng)電壓驅(qū)動器ST232CD驅(qū)動超聲波發(fā)射傳感器發(fā)射超聲波。同時輸出的回響信號被升至高電平作為PIC內(nèi)部計時的開始,同時關(guān)閉ST232CD。超聲波遇障礙物返回,回波信號由超聲波接收傳感器轉(zhuǎn)化為40kHz電信號。經(jīng)兩級LMC6032集成放大器放大后送入LP311比較器進(jìn)行檢波,濾掉與超聲波發(fā)射器直接耦合的信號,然后送入PIC控制器,將輸出的回響信號降為低電平。如果沒有檢測到回波信號,模塊將在30ms后自動停止上一個周期檢測。故回響信號的高電平持續(xù)時間即為超聲波到達(dá)障礙物并返回所用的時間t。
4 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件部分分為三層結(jié)構(gòu):測距控制開關(guān)部分、數(shù)據(jù)緩沖區(qū)部分、定時器測距部分。定時器T2用來產(chǎn)生模塊DYP-ME007的觸發(fā)信號,置為fast PWM模式,產(chǎn)生周期為60ms,高電平持續(xù)時間為1ms的脈沖,由PD.7(OC2)引腳輸出。DYP-ME007模塊內(nèi)部接到觸發(fā)信號后將發(fā)出8個40kHz周期電平并檢測回波,由ECHO端口輸出回響信號到單片機(jī)的PD.6(ICP1)引腳。
定時器T1用來對回響信號的高電平計時,置為下降沿觸發(fā)輸入捕捉模式,預(yù)分頻器對時鐘源64分頻,作為定時器T1的計數(shù)脈沖信號源。輸入捕捉模式是AVR定時/計數(shù)器的一個非常有特點的功能,能夠準(zhǔn)確記錄輸入信號電平的變化。PD.6(ICP1)引腳接收的回響信號上升沿(對應(yīng)超聲波信號發(fā)射起始時刻)到來時,定時器T1將計數(shù)器TCNT1中的值清零并開始計數(shù)。當(dāng)回響信號下降沿(對應(yīng)超聲波反射信號結(jié)束時刻)到來時,定時器T1進(jìn)行輸入捕捉,自動將TCNT1中的計數(shù)值寫入輸入捕捉寄存器ICR1。
輸入捕捉寄存器ICR1中的計數(shù)值與回響信號的高電平持續(xù)時間t的關(guān)系為t=ICR1/(4MHz/64),被測的距離為S=v×t/2=170×t(m)=170×t×1000(cm),式中v=340m/s為聲速。
將測得的距離S送入數(shù)據(jù)緩沖區(qū)。當(dāng)測距控制開關(guān)按下時,數(shù)碼管即從數(shù)據(jù)緩沖區(qū)讀取數(shù)據(jù)并顯示。若S<150(cm),則數(shù)碼管閃爍且蜂鳴器發(fā)出聲音報警提示。當(dāng)測距控制開關(guān)再次按下時,將數(shù)碼管共陰極置高,停止顯示;將蜂鳴器輸入端置低,停止報警。
5 結(jié)語
該設(shè)計充分利用了AVR單片機(jī)Atmega16高速、低功耗、輸入捕捉等優(yōu)勢,配合超聲波模塊DYP-ME007實現(xiàn)了3cm~3.5m范圍內(nèi)的快速準(zhǔn)確測距功能,并將測量結(jié)果通過數(shù)碼管顯示。當(dāng)障礙物小于安全距離1.5m時,蜂鳴器將發(fā)出報警提示,同時數(shù)碼管的數(shù)字閃爍,及時提醒司機(jī)停止倒車,從而起到倒車防撞的作用。經(jīng)實際測試表明,該系統(tǒng)結(jié)構(gòu)簡單,靈敏度高,工作穩(wěn)定可靠。
參考文獻(xiàn)
[1] 周俊杰.嵌入式C編程與Atmel AVR[M].北京:清華大學(xué)出版社,2003.
[2]馬潮.AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實踐[M].北京:北京航空航天大學(xué)出版社,2007,10.