基于AT89C52單片機(jī)的超聲波測(cè)距儀的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:基于提高測(cè)量精度的目的,設(shè)計(jì)了具有溫度補(bǔ)償?shù)某暡y(cè)距系統(tǒng)。該系統(tǒng)采用DS18B20溫度傳感器對(duì)現(xiàn)場(chǎng)溫度進(jìn)行檢測(cè),并通過(guò)軟件計(jì)算實(shí)現(xiàn)溫度補(bǔ)償。實(shí)驗(yàn)結(jié)果表明:此系統(tǒng)具有測(cè)量精度高的優(yōu)點(diǎn)。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);溫度傳感器;超聲波;測(cè)距
測(cè)距技術(shù)在物位檢測(cè)、醫(yī)療探傷、汽車防撞等民用、工業(yè)領(lǐng)域應(yīng)用廣泛,由于超聲波的速度相對(duì)于光速要小的多,其傳播時(shí)間就比較容易檢測(cè),并且易于定向發(fā)射,方向性好,發(fā)射強(qiáng)度好控制,且不受電磁干擾影響,因而利用超聲波測(cè)距是一種有效的非接觸式測(cè)距方法。但超聲波在不同環(huán)境溫度下傳播速度不同,如忽略溫度影響,將影響最終測(cè)量精度。本文介紹的超聲波測(cè)距儀采用渡越時(shí)間檢測(cè)法,使用了DS1 8B20溫度傳感器對(duì)現(xiàn)場(chǎng)溫度進(jìn)行檢測(cè),并通過(guò)軟件計(jì)算實(shí)現(xiàn)波速的溫度補(bǔ)償,消除了溫度對(duì)測(cè)量結(jié)果的影響,使測(cè)量誤差降低。
1 系統(tǒng)工作原理
超聲波測(cè)距原理如圖1所示。
式中c——超聲波波速:t——從發(fā)射出超聲波到接收到回波所用時(shí)間。
限制該系統(tǒng)的最大可測(cè)距離存在4個(gè)因素:超聲波的幅度、反射的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對(duì)聲波脈沖的直接接收能力將決定最小的可測(cè)距離。為了增加所測(cè)量的覆蓋范圍、減小測(cè)量誤差,可采用多個(gè)超聲波換能器分別作為多路超聲波發(fā)射/接收的設(shè)計(jì)方法。
由于超聲波屬于聲波范圍,其波速c與溫度有關(guān),經(jīng)過(guò)測(cè)量得出超聲波的波速與溫度的關(guān)系,如表1所示。
將測(cè)量的速度數(shù)據(jù)與溫度數(shù)據(jù)進(jìn)行一階擬合得出:
c=331.6+0.6107xT (2)
式中T——當(dāng)?shù)販囟取?br />
在測(cè)距時(shí),可通過(guò)溫度傳感器自動(dòng)探測(cè)環(huán)境溫度、確定其時(shí)的波速c。波速確定后,只要測(cè)得超聲波往返的時(shí)間t,即可求得距離H,這樣能較精確地得出該環(huán)境下超聲波經(jīng)過(guò)的路程,提高了測(cè)量精確度。
本設(shè)計(jì)方案中使用渡越時(shí)間檢測(cè)法,測(cè)距儀工作原理為:在由單片機(jī)發(fā)出驅(qū)動(dòng)信號(hào)的同時(shí),開(kāi)啟單片機(jī)中的計(jì)時(shí)器,開(kāi)始計(jì)時(shí)。發(fā)射探頭發(fā)射出超聲波,在由接收探頭接收到第一回波的同時(shí)停止單片機(jī)計(jì)時(shí)器的計(jì)時(shí),由于超聲波在空氣中的速度已知,根據(jù)公式即可求得探頭與待測(cè)目標(biāo)之間的距離。而且,可以在較短時(shí)間內(nèi)多次發(fā)出超聲波測(cè)量,完成后計(jì)算平均值然后顯示。
超聲波在相同的傳播媒體里(大氣條件)傳播速度相同,即在相當(dāng)大的頻率范圍內(nèi)聲速不隨頻率變化,但其頻率越高,衰減得越厲害,傳播的距離也越短??紤]實(shí)際工程測(cè)量要求,在設(shè)計(jì)超聲波測(cè)距儀時(shí),選用頻率f=40kHz的超聲波,波長(zhǎng)為0.85cm。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)采用AT89C52單片機(jī)作為主控制器,使用3位數(shù)碼管作為系統(tǒng)顯示屏,超聲波發(fā)射驅(qū)動(dòng)需要的40 kHz脈沖由單片機(jī)P0.0發(fā)出,使用定時(shí)器進(jìn)行計(jì)時(shí)和控制,超聲波接收使用CX20106A作為接收主控芯片,使用DS18B20作為溫度傳感器進(jìn)行溫度校正。超聲波測(cè)距器的系統(tǒng)原理圖如圖2所示。
2.1 超聲波的發(fā)射電路設(shè)計(jì)
超聲波發(fā)送模塊是由超聲波發(fā)射探頭組成的,單片機(jī)的P0.0端口直接發(fā)送40 kHz的信號(hào),使用9012三極管做為驅(qū)動(dòng)放大,驅(qū)動(dòng)壓電晶片超聲波換能器產(chǎn)生超聲波,超聲波發(fā)射電路如圖3所示。超聲波發(fā)射子程序的流程是,發(fā)射時(shí)首先裝填計(jì)時(shí)器,并且開(kāi)始計(jì)時(shí),當(dāng)超聲波發(fā)射完畢時(shí),定時(shí)器計(jì)時(shí)完畢,并且重新裝填等待下次發(fā)射。
2.2 超聲波接收電路設(shè)計(jì)
在接收電路中使用了紅外線接收處理芯片CX20106A,因?yàn)樗幚淼氖?8 kHz的紅外信號(hào),而40 kHz的超聲波信號(hào)和它比較接近,并且CX20106A芯片具有很強(qiáng)的抗干擾能力,這個(gè)芯片的外圍電路很簡(jiǎn)單而且通過(guò)外圍電阻調(diào)節(jié)它的中心處理頻率,通過(guò)改變外圍電路電容的大小也可以改變接收電路靈敏度和抗干擾能力。
經(jīng)過(guò)試驗(yàn)后發(fā)現(xiàn)用單片機(jī)發(fā)40 kHz信號(hào)與使用CX20106A的電路搭配更加簡(jiǎn)單合理,使得時(shí)間的計(jì)算更為精確。
該系統(tǒng)的超聲波接收模塊是由超聲波接收探頭和紅外線接收處理芯片CX20106A組成。如圖4所示。超聲波接收子程序的流程是,利用INT0中斷檢測(cè)回波信號(hào),若有回波信號(hào)(INT0口低電平)就關(guān)閉外部中斷,同時(shí)停止計(jì)時(shí)器的計(jì)時(shí),將測(cè)距成功標(biāo)志位標(biāo)記為1(測(cè)距成功),同時(shí)提取時(shí)間值,計(jì)算待測(cè)距離,保存最終結(jié)果后打開(kāi)外部中斷,等待下次測(cè)量。
2.3 超聲波測(cè)距顯示電路
在顯示模塊選擇時(shí)有兩種,一種是用液晶顯示屏,其具有輕薄短小,分辨率高,可顯示漢字等各種符號(hào)的優(yōu)點(diǎn)。但一般需要利用控制芯片創(chuàng)建字符庫(kù),編程工作量大;一種則是選用數(shù)碼管,數(shù)碼管具有低電耗、壽命長(zhǎng)、易于維護(hù)的特點(diǎn),同時(shí)精度比較高,稱量快,精確可靠,編程容易,操作簡(jiǎn)單。缺點(diǎn)是不能實(shí)現(xiàn)漢字及多數(shù)據(jù)多行顯示。綜合考慮本次設(shè)計(jì)中選擇了3位數(shù)碼管顯示。用PNP型三極管驅(qū)動(dòng)數(shù)碼管,并連接到單片機(jī)AT89C52的P0口上作位選。雖然顯示上沒(méi)有液晶顯示屏那么完全,但是也能夠完整直觀地顯示出需要的結(jié)果。圖5為超聲波測(cè)距硬件設(shè)計(jì)的顯示電路。
2.4 溫度補(bǔ)償電路設(shè)計(jì)
本系統(tǒng)中,選擇使用溫度芯片DS18B20作為溫度傳感器。DS18B20支持“一線總線”接口,測(cè)量溫度范圍為-55~125℃,在-10~85℃范圍內(nèi),精度為±0.5℃?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量。DS18B20引腳說(shuō)明如表2所示。
DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。
溫度補(bǔ)償電路的設(shè)計(jì)如圖6所示,數(shù)據(jù)輸入/輸出腳連接到單片機(jī)的P0.1腳,電源接口接入+5 V的電壓,外加5.6 kΩ的上拉電阻,因?yàn)镈S18B20是單總線溫度傳感器,數(shù)據(jù)線是漏極開(kāi)路,如果DS18B20沒(méi)接電源,則需要數(shù)據(jù)線強(qiáng)上拉,給DS18B20供電;如果DS18B20接有電源,則需要一個(gè)上拉即可穩(wěn)定的工作。由于DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi),檢測(cè)的溫度值在內(nèi)部進(jìn)行轉(zhuǎn)換,溫度測(cè)量結(jié)果直接以數(shù)字信號(hào)輸出,單片機(jī)對(duì)由DS18B20輸出的信號(hào)進(jìn)行讀取,經(jīng)過(guò)軟件對(duì)溫度數(shù)字值實(shí)現(xiàn)處理。
2.5 主電路原理圖
該系統(tǒng)主電路原理圖如圖7所示,單片機(jī)采用89C52系列,單片機(jī)使用外部時(shí)鐘源,外接6MHZ的晶振,由P0.0口直接輸出40 KHZ的驅(qū)動(dòng)信號(hào)給放大電路。接收到回波后,經(jīng)由CX20106的濾波,產(chǎn)生中斷信號(hào),并由p3.2口輸出進(jìn)行中斷。顯示電路采用簡(jiǎn)單實(shí)用的3位數(shù)碼管,連接單片機(jī)AT89C52的P0口,而三極管連接P2口,作數(shù)碼管的位選。工作時(shí),首先將系統(tǒng)初始化,啟動(dòng)計(jì)時(shí)器。并由P0.0腳發(fā)出40KHZ的驅(qū)動(dòng)信號(hào),同時(shí)打開(kāi)INT0中斷,并且開(kāi)始等待接收到的回波和中斷信號(hào),若接收到回波(單片機(jī)接收到中斷信號(hào)),計(jì)時(shí)器停止計(jì)時(shí),保存時(shí)間信息,并且根據(jù)溫度補(bǔ)償計(jì)算出當(dāng)前環(huán)境下的聲速,計(jì)算出當(dāng)前待測(cè)距離后儲(chǔ)存,并調(diào)用顯示子程序。測(cè)出距離后結(jié)果將以十進(jìn)制BCD碼方式傳送到LED顯示,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過(guò)程。
3 結(jié)論
經(jīng)過(guò)實(shí)測(cè),本測(cè)距儀能夠迅速的測(cè)出250 m以內(nèi)的短距離障礙物,在30—200 cm范圍內(nèi),誤差能控制在1 cm以內(nèi),本設(shè)計(jì)具有簡(jiǎn)單實(shí)用,能耗低,成本低等特點(diǎn)。經(jīng)過(guò)實(shí)際測(cè)試,發(fā)現(xiàn)系統(tǒng)的精度能滿足普通需求,若需要進(jìn)一步提高精度,可采用精度更高但系統(tǒng)更加復(fù)雜的雙頻超聲波測(cè)距的方法。