<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機的超聲波測距報警系統(tǒng)設(shè)計

          基于單片機的超聲波測距報警系統(tǒng)設(shè)計

          作者: 時間:2016-09-21 來源:網(wǎng)絡(luò) 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/201609/310095.htm

            科學(xué)家們將每秒鐘振動的次數(shù)稱為聲音的頻率,它的單位是赫茲。我們?nèi)祟惗淠苈牭降穆暡l率為20~20000Hz。當(dāng)聲波的振動頻率大于20KHz或小于20Hz時,我們便聽不見了。因此,我們把頻率高于20000赫茲的聲波稱為“超聲波”。

            1.超聲波測距原理

            超聲波是指頻率高于20KHz 的機械波。為了以超聲波作為檢測手段,必須產(chǎn)生超聲波和接收超聲波,完成這種功能的裝置稱為超聲波傳感器。超聲波傳感器有發(fā)送器和接收器,有的也可具有發(fā)送和接收聲波的雙重作用。根據(jù)超聲波的產(chǎn)生方式,超聲波傳感器可分為兩大類:一類是電氣式,如壓電式、磁致伸縮式和電動式等;一類是機械式,如加爾統(tǒng)笛、液哨等。目前常用的是壓電式超聲波傳感器。它利用壓電效應(yīng)的原理將電能和超聲波相互轉(zhuǎn)化,即發(fā)射超聲波時,將電能轉(zhuǎn)換為超聲波發(fā)射出去;在收到回波時,將超聲振動轉(zhuǎn)換成電信號。

            超聲波測距的原理一般采用時間差法,即測出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離,即:

            

           

            式中,D—傳感器與障礙物之間的距離;c—聲波在介質(zhì)中的傳輸速度。

            由于超聲波易于定向發(fā)射、方向性好、強度易控制、與被測物體不需直接接觸,故超聲波傳感器廣泛地應(yīng)用于液體高度測量、汽車倒車等方面。為了提高測量精度,減小誤差,根據(jù)公式(1)可知,測距誤差由傳播速度誤差和傳播時間誤差引起。

            當(dāng)傳播速度準確時,傳播時間差值精度只要達到微秒級,就可保證測距誤差小于1mm。設(shè)計中,可采用12MHz 晶體作時鐘的基準,定時器的計數(shù)精度可達1us,從而保證測量精度。

            傳播速度受空氣密度的影響,空氣密度越高,傳播速度越快,而空氣密度與溫度有密切關(guān)系。在理想氣體中聲波的傳播速度c 為:

            

           

            式中,γ—氣體定壓比熱容與定容比熱容之比;R—氣體常數(shù);M—氣體分子量;T—絕對溫度。

            若溫度變化不大,則可認為聲速基本不變,其值為340m/s。若測距精度要求較高,為減小溫度變化對聲速產(chǎn)生的影響,在設(shè)計中,應(yīng)增加溫度傳感器來監(jiān)測環(huán)境溫度,進行實時溫度補償,近似公式為:

            

           

            式中,c0—零度時的聲波速度332m/s; T—實際溫度(℃)。

            2.測距報警系統(tǒng)設(shè)計

            2.1 硬件設(shè)計

            電路原理圖如圖1 所示。采用PIC16F73 作為主控制器,實現(xiàn)對CX20106 紅外接收芯片(紅外常用的載波頻率38KHz 與測距超聲波頻率40KHz 較為接近) 和TCT40 系列超聲波轉(zhuǎn)換模塊的控制。通過端口RB1 控制超聲波的發(fā)送,然后單片機不停地檢測中斷端口RB0/INT,當(dāng)端口RB0/INT 的電平由高電平變?yōu)榈碗娖綍r,系統(tǒng)認為超聲波已返回。計數(shù)器所計數(shù)據(jù)即為超聲波所經(jīng)歷的時間,通過換算可得到傳感器與障礙物之間的距離。超聲信號的驅(qū)動由單片機定時器完成,LED 數(shù)字顯示采用動靜態(tài)驅(qū)動相結(jié)合的方法實現(xiàn),報警模塊采用簡單的聲光報警電路。

            

           

            圖1 測距報警系統(tǒng)電路原理圖

            系統(tǒng)利用單片機的定時器功能產(chǎn)生40KHz 脈沖信號, 并通過端口RB1 輸出到超聲波發(fā)射部分。超聲波發(fā)射電路中, 六反相緩沖器CD4049 包括6個非門,現(xiàn)僅使用3 個,為防止干擾或被靜電擊穿導(dǎo)致整個CD4049 損壞,把未使用的3 個非門串起來做接地處理。當(dāng)控制端輸出一系列固定頻率脈沖時,在超聲波發(fā)射器TCT40-1F 上就以固定的頻率加正電壓和反電壓,從而發(fā)出大功率的超聲波。這種以軟件方式產(chǎn)生的波形較用其他方式產(chǎn)生的效果更理想。

            接收器采用與發(fā)射器相配對的TCT40-2S, 將超聲波調(diào)制脈沖轉(zhuǎn)換為40KHz 毫伏級電壓信號, 此信號需經(jīng)過放大處理才能觸發(fā)單片機中斷。芯片CX20106 內(nèi)置前置放大器、限幅放大器、帶通濾波器、檢波器、積分器、整型電路等。其中前置放大器具有自動增益控制功能,可保證在超聲波傳感器接收較遠反射信號而輸出微弱電壓時,放大器有較高的增益,而在近距離輸入信號強時,放大器不會過載。調(diào)節(jié)芯片引腳5 的外接電阻R3 的值,可設(shè)置濾波器的中心頻率。當(dāng)RB3=200K時,中心頻率為42KHz;當(dāng)RB3=220K 時,中心頻率為38KHz。當(dāng)接收到與濾波器中心頻率相符的信號時,引腳7 輸出一個低電平,從而觸發(fā)中斷。適當(dāng)改變引腳2 的外接電容C4 的值,可改變接收電路的靈敏度和抗干擾能力。

            3位LED數(shù)碼顯示采用顯示器動靜態(tài)驅(qū)動相結(jié)合的方法實現(xiàn)。采用單片機串行口通過74HC164 串入并出移位寄存器來輸出LED 的段驅(qū)動信號,每個LED 的段信號都連在一起,并與74HC164 輸出的段驅(qū)動信號連接。每個LED 的位驅(qū)動信號由單片機的端口RB5~RB7 通過ULN2004 驅(qū)動集成塊分別驅(qū)動,LED 需用共陰數(shù)碼管。

            報警模塊的功能是, 當(dāng)傳感器與障礙物的距離不小于設(shè)定值時,綠色指示燈閃亮;反之,紅色指示燈閃亮,蜂鳴器發(fā)聲,提示人員注意安全距離。

            2.2 軟件設(shè)計

            軟件分為兩部分:主程序和中斷服務(wù)程序,流程圖如圖2 所示。主程序完成初始化工作及超聲波發(fā)射和接收控制。中斷服務(wù)程序包括定時中斷服務(wù)子程序和外部中斷服務(wù)子程序,分別完成超聲波的發(fā)射、距離計算及顯示報警等工作。

            

           

            圖2 測距報警系統(tǒng)程序流程圖

            3.測試結(jié)果

            當(dāng)距離大于2m 時,綠燈閃亮,顯示距離;當(dāng)距離小于1m 時,紅燈閃亮,由端口RB2 驅(qū)動蜂鳴器報警,顯示距離;當(dāng)距離介于2m 和1m之間時,紅燈閃亮,顯示距離。為提高抗干擾能力,系統(tǒng)連續(xù)發(fā)射超聲波,測量三次,從中剔除最大最小值,取中間值計算出距離。

            4.結(jié)語

            此系統(tǒng)較好地實現(xiàn)了測距及報警功能,可用于汽車倒車、液位監(jiān)控等場合,而且測量簡單、經(jīng)濟、可靠。



          關(guān)鍵詞: 單片機

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();