久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 36003|回復: 6
打印 上一主題 下一主題
收起左側(cè)

超聲波測距語音播報設計論文

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:169164 發(fā)表于 2017-6-13 07:25 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
畢業(yè)設計超聲波測距語音播報論文

專   業(yè)    電子信息工程技術(shù)      
學生姓名
班   級
學   號
指導教師
完成日期


摘 要

在空氣介質(zhì)中超聲測距傳感器因其性能好,價格低廉、使用方便,在現(xiàn)場機器人定位系統(tǒng)、車輛自動導航、車輛安全行駛輔助系統(tǒng)、城市交通管理和高速公路管理監(jiān)測系統(tǒng),以及河道、油井和倉庫及料位的探測中都有應用。由于超聲波傳播不易受干擾,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波經(jīng)常用于距離的測量,如測距和物位測量等都可以通過超聲波來實現(xiàn)。為此,深入研究超聲波的產(chǎn)生與傳播規(guī)律、開發(fā)高性能超聲波換能器及其收發(fā)電路,對于超聲波檢測技術(shù)的發(fā)展具有十分重要的現(xiàn)實意義。

本設計介紹了基于單片機控制的超聲測距的原理:由STC89C52控制定時器產(chǎn)生一定頻率脈沖,計算從發(fā)射到接收回波時間,從而得到實測距離,數(shù)據(jù)處理采用,lcd1602顯示距離,WTD588D語音播報。


摘 要
Abstract
第一章 緒論
1.1 課題設計目的及意義
1.1.1設計的目的
1.1.2設計的意義
1.2 國內(nèi)外研究動態(tài)
1.3 本課題研究的主要內(nèi)容
第二章 總體方案
2.1 方案選擇
2.2 超聲波測距儀的設計思路
2.2.1 超聲波測距原理
2.2.2 超聲波測距原理框圖
2.3 使用元件選擇
第三章 系統(tǒng)的硬件結(jié)構(gòu)設計
3.1 STC89C52單片機的功能及特點
3.2單片機最小系統(tǒng)
3.4 語音播報
3.5 顯示單元
第四章 系統(tǒng)的軟件設計
4.1 主程序流程圖
4.2 超聲波發(fā)生子程序和超聲波接收中斷程序
第五章超聲波測距接收
5.1 HC-SR04模塊
5.2 T40、R40超聲波傳感器簡介
5.2.1 超聲波傳感器的基本介紹
5.2.2 超聲波傳感器的主要應用
5.2.3 超聲波傳感器的工作原理
5.3 超聲波發(fā)射電路
5.4 超聲波接收電路
5.5 超聲波接收過程
5.6 接收數(shù)據(jù)處理
第六章總結(jié)
致  謝
參考資料
附錄1原理圖
附錄2主要源程序

第一章 緒論

1.1 課題設計目的及意義

1.1.1設計的目的

隨著科學技術(shù)的快速發(fā)展,超聲波在測距中的應用越來越廣。但就目前的急速水平來說,人們可以具體利用的測距技術(shù)還十分有限,因此,這是一個正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領域。由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因此超聲波經(jīng)常用于距離測量,如超聲波測距和物位測量等都可以通過超聲波來實現(xiàn)。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制。為了研究和利用超聲波,人們已經(jīng)設計和制成了許多超聲波發(fā)生器。研制具有更高定位精度的被動測距聲納,以滿足水中武器實施全隱蔽攻擊的需求;繼續(xù)發(fā)展采用低頻線譜檢測的潛艇拖拽線列陣聲納,實現(xiàn)超遠程的被動探測和識別;研制更適合與前還工作的潛艇聲納,特別是解決淺海水中目標識別問題;搭理降低潛艇自噪聲,改善潛艇聲納的工作環(huán)境。毋庸置疑,無線的超聲波測距將于自動化智能化接軌,與其他的測距儀集成和融合,形成多測距。隨著測距儀的技術(shù)進步,測距儀將從具有單純判斷功能發(fā)展到具有學習功能,最終發(fā)展到具有創(chuàng)造力。在新的世紀里,面貌一新的測距儀將發(fā)揮更大的作用。

1.1.2設計的意義

由于超聲測距是一種非接觸檢測技術(shù),不受光線、被測對象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護、不污染、高可靠、長壽命等特點,所以超聲波測距系統(tǒng)主要應用于汽車的倒車雷達、機器人自動避障行走、建筑施工工地以及一些工業(yè)現(xiàn)場中的液位、井深、管進長度測量等場合。因此研究超聲波測距系統(tǒng)有著很大的現(xiàn)實意義。對本課題的研究與設計,還能進一步提高自己的電路設計水平,深入對單片機的理解和應用。

1.2 國內(nèi)外研究動態(tài)

    國外在提高超聲波測距方面做了大量的研究,國內(nèi)一些學者也作了相關(guān)的研究。目前超聲波測距方法主要有三種:(1)相位檢測法:精度高,但檢測范圍有限;(2)聲波幅值檢測法:易受反射波的影響;(3)渡越時間法:工作方式簡單,直觀,F(xiàn)在對超聲波測距的精度主要取決于所測的超聲波傳輸時間和超聲波在介質(zhì)中的傳輸速度,二者中以傳輸時間的精度影響較大,所以大部分文獻采用降低傳輸時間的不確定度來提高測距精度。溫度對傳感器的影響也很大,因此,需要用溫度傳感器進行校正,目前相位探測法和聲譜輪廓分析法或二者結(jié)合起來的方法是主要的降低探測傳輸不確定度的方法。

1.3 本課題研究的主要內(nèi)容

超聲波是指頻率高于20KHz的機械波。為了以超聲波作為檢測手段,必須產(chǎn)生超生波和接收超聲波。完成這種功能的裝置就是超聲波換能器。超聲波傳感器有發(fā)送器和接收器,但一個超聲波換能器也可具有發(fā)送和接收聲波的雙重作用。超聲波換能器是利用壓電效應的原理將電能和超聲波相互轉(zhuǎn)化,即在發(fā)射超聲波的時候,將電能轉(zhuǎn)換,發(fā)射超聲波;而在收到回波的時候,則將超聲振動轉(zhuǎn)換成電信號。
超聲波測距的原理一般采用渡越時間法TOF(time of flight)。首先測出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離,擬應用以下三種技術(shù):

    a、單片機技術(shù):STC89C52系列的單片機具有體積小,重量輕,結(jié)構(gòu)較為簡單,成本低廉,可以實現(xiàn)一般的控制功能的優(yōu)點。而且單片機更適用應用于小型的嵌入式系統(tǒng),因此它得到了廣泛的應用。現(xiàn)代人類生活大部分電子和機械產(chǎn)品中都會集成有單片機。

    b、超聲波測距技術(shù):超聲波測距技術(shù)與一般測距技術(shù)相比,具有操作方便、系統(tǒng)簡單以及計算簡單的優(yōu)點。

    c、顯示技術(shù):數(shù)據(jù)處理,數(shù)碼管顯示測出與物體之間的距離。

    d、語音模塊技術(shù):ISD1730A芯片來語音播報距離。

第二章 總體方案

2.1 方案選擇

采用單片機來控制超聲波測距,信號線發(fā)射到與超聲波發(fā)射器相連的信號端,超聲波發(fā)射器向既定方向發(fā)射,在發(fā)射的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物將產(chǎn)生回波。

2.2 超聲波測距儀的設計思路
2.2.1 超聲波測距原理

超聲波測距的方法有多種,如相位檢測法、聲波幅值檢測法和渡越時間檢測法等。相位檢測法雖然精度高,但檢測范圍有限,聲波幅值檢測法易受反射波的影響。

本測距系統(tǒng)采用超聲波渡越時間檢測法。其原理為:檢測從發(fā)射傳感器發(fā)射的超聲波經(jīng)氣體介質(zhì)傳播到接收傳感器的時間t,這個時間就是渡越時間,然后求出距離l。設l為測量距離,t為往返時間差,超聲波的傳播速度為c,則有l(wèi)=ct/2。超聲波接收器收到反射波就立即停止計時。再由單機計算出距離,送數(shù)碼管顯示測量結(jié)果。

超聲波測距的算法設計: 超聲波在空氣中傳播速度為每秒鐘340米(15℃時)。t2是接收超聲波時刻,t1是超聲波聲波發(fā)射時刻,t2-t1得出的是一個時間差的絕對值,假定t2-t1=0.03S,則有340m×0.03S=10.2m。由于在這10.2m的時間里,超聲波發(fā)出到遇到返射物返回的距離如下: 如圖2-2-1為測距原理[4]

圖2-1測距原理

因為θ/2角度較小,可以忽略不計,所以L≈S。

超聲波發(fā)出到遇到返射物返回的距離如下:

L=C x ( t2 -t1 )/ 2

由于超聲波也是一種聲波,其聲速c與空氣溫度有關(guān),一般來說,溫度每升高1攝氏度,聲速增加0.6米/秒。表2-1列出了幾種溫度下的聲速。


表2-1  聲速與溫度的關(guān)系表

溫度(攝氏度)

-30

-20

-10

0

10

20

30

100

聲速(米/秒)

313

319

325

323

338

344

349

386


在使用時,如果溫度變化不大,則可認為聲速c是基本不變的,計算時取c為340m/s。如果測距精度要求很高,則可通過改變硬件電路增加溫度補償電路的方法或者在硬件電路基本不變的情況下通過軟件改進算法的方法來加以校正。

2.2.2 超聲波測距原理框圖

     超聲波測距模塊用HC-SR04,溫度傳感器使用DS18B20,微處理器使用STC89C52單片機,顯示部分采用共陽數(shù)碼管。HC-SR04集成的發(fā)射電路模塊發(fā)出超聲波,遇到障礙物產(chǎn)生回波,被接收電路模塊接收,STC89C52單片機統(tǒng)計出聲波傳輸所用時間,經(jīng)過溫度補償溫,計算出正確的待測距離,同時ISD1730A根據(jù)相關(guān)數(shù)據(jù)處理進行組合播報當前測試距離,并且由數(shù)碼管顯示。

圖2-2 超聲波測距系統(tǒng)結(jié)構(gòu)圖


2.3 使用元件選擇

由于測量距離的精度和長度要求不是很高,精度達到2cm,測量距離達到2m即可,因此超聲波模塊選用價格低廉且實用的HC-SR04即可。

    控制核心部分選擇實用的STC89C52單片機即可滿足計算和控制要求。

溫度補償?shù)臏囟葌鞲衅鬟x擇普遍且實用的DS18B20。

    語音播報:ISD1730A是華邦公司新推出的語音芯片,用來替代已經(jīng)停產(chǎn)的ISD1400 系列及ISD2500 系列芯片。ISD1730A不僅在錄音時間上有更多的選擇(從20秒到240 秒),而且在功能上繼承14及25系列的所有錄放功能,并增加了一些更加人性化的提示功能及對存儲地址的精確操作。根據(jù)我們經(jīng)營 ISD 系列芯片多年的經(jīng)驗來看,ISD1700 的音質(zhì)也較14及25系列有明顯的提高

ISD1700 系列芯片是華邦公司新推出的單片優(yōu)質(zhì)語音錄放電路,該芯片提供多項新功能,包括內(nèi)置專利的多信息管理系統(tǒng),新信息提示(vAlert ),雙運作模式(獨立&嵌入式),以及可定制的信息操作指示音效。芯片內(nèi)部包含有自動增益控制、麥克風前置擴大器、揚聲器驅(qū)動線路、振蕩器與內(nèi)

存等的全方位整合系統(tǒng)功能。。

    顯示部分:選擇了四位數(shù)碼管。

第五章超聲波測距接收

5.1 HC-SR04模塊

HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,其結(jié)構(gòu)簡單,使用單片機控制電路簡單容易,而且價格便宜。該模塊包括超聲波發(fā)射、接收與控制電路。實物如圖5-1。

圖5-1  HC-SR04模塊實物圖

基本工作原理

①采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;

②模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;

③有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)時間就是超

聲波從發(fā)射到返回的時間。

電氣參數(shù)

HC-SR04模塊參數(shù)如下表5-1所示。


表5-1模塊參數(shù)
電氣參數(shù)
HC-SR04超聲波模塊
工作電壓
DC 5V
工作電流
15mA
工作頻率
40khz
最遠射程
4m
最近射程
2cm
測量角度
15°
輸入觸發(fā)信號
10us的TTL脈沖
輸入回響信號
輸出TTL電平信號,與射程成比例
規(guī)格尺寸
45*20*15cm

超聲波時序圖
超聲波時序圖如圖5-2所示
圖5-2超聲波時序圖

以上時序圖表明只需要提供一個10us以上脈沖信號,該模塊內(nèi)部將發(fā)出8個40khz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號;仨懶盘柕拿}沖寬度與測量的距離成正比。由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到距離:

距離=高電平時間*聲速(340m/s)/2。

為防止發(fā)射信號對回響信號的影響,測量周期一般要60ms以上。

模塊主要由Em78p153單片機、MAX232、TL074、超聲波傳感器:T40-16、R40-16組成。

Em78p153單片機

①概況描述

Em78p153是采用高速CMOS工藝制造的8位單片機。其內(nèi)部有512*13位一次性ROM(OTPROM)。因此,用戶可以方便改進完善程序。程序代碼可用EMC編程器寫入芯片。有13位選項位可滿足用戶要求,其中的保護位可用來防止程序被讀出。

②功能特點

工作電壓范圍:2.0V~6.0V;

工作溫度范圍:0℃~70℃;

工作頻率范圍:DC~8MHz;

512×13位片內(nèi)ROM;32×8位片內(nèi)寄存器(SDRAM);

片內(nèi)有4MHz校準RC振蕩器;

2個雙向I/O端口;

8位實時定時/計數(shù)器(TCC),信號源、觸發(fā)沿可編程選擇,溢出產(chǎn)生中斷;

掉電模式(SLEEP模式);

3個中斷源:TCC溢出中斷、輸入引腳狀態(tài)變化中斷、外部中斷;

EM78P153為14腳封裝;封裝形式:SOP、SSOP和DIP。

③引腳分配

Em78p153單片機引腳分配如圖5-3。

圖5-3 Em78p153引腳圖

MAX232

MAX232芯片是美信公司專門為電腦的RS-232標準串口設計的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。MAX232多用于串口通信,起到電平轉(zhuǎn)換的作用,而本設計只用到其電平轉(zhuǎn)換,將40kHz的方波由5V轉(zhuǎn)換成20V,提高發(fā)射功率。超聲波發(fā)射頭采用共振頻率為40kHz的TCT40-16探頭,接收頭采用RCT40-16。

①MAX232引腳圖

芯片引腳如圖5-4。

圖5-4 MAX232引腳圖

②引腳介紹
第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。
第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道;8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。
第三部分是供電。15腳GND、16腳VCC(+5v)。
TL074
常用的低噪聲JFET輸入運算放大器,引腳如圖5-5。
圖5-5 TL074引腳圖

1、2、3腳是通道1的輸出端、反相輸入端、同相輸入端,5、6、7腳是通道2的同相輸入端、反相輸入端、輸出端,8、9、10腳是通道3的輸出端、反相輸入端、同相輸入端,12、13、14腳是通道4的同相輸入端、反相輸入端、輸出端,4腳是正電源,11腳是負電源。TL074內(nèi)部組件數(shù)量如下表5-2所示

表5-2 TL074組件
電阻
44
晶體管
56
JFET
6
二極管
4
電容
4
epi-FET
4

T40-16與R40-16

為了研究和利用超聲波,人們已經(jīng)設計和制成了許多超聲波發(fā)生器?傮w上講,超聲波發(fā)生器可以分為兩大類:

電氣方式產(chǎn)生超聲波, 主要包括壓電型、磁致伸縮型和電動型等;

機械方式產(chǎn)生超聲波,主要包括加爾統(tǒng)笛、液哨和氣流旋笛等。

    它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。

壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。其內(nèi)部有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片發(fā)生共振,帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了。模塊使用T40-16T/R超聲波換能器即為壓電型。

①器件說明

名 稱:壓電陶瓷超聲波傳感器;

型 號:T40-16T/R;

類 別:通用型;

中心頻率:40KHZ;

外 徑:16mm;

使用方式:T為發(fā)射頭,R為接收頭,TR為收發(fā)兼用;

適用范圍:家用電器及其它電子設備的超聲波遙控裝置;超聲波測距及汽車倒車防撞裝置;液面探測;超聲波接近開關(guān)及其它應用的超聲波發(fā)射與接收。

②器件性能

1.標稱頻率(KHz):40KHz;

2.發(fā)射電壓at10V(0dB=0.02mPa):≥110dB;

3.接收靈敏度at40KHz(0dB=V/ubar):≥-70dB;

4.靜電容量at1KHz,<1V(PF):2000±30%;

5.探測距離(m):0.02-10。

傳感器實物如圖5-5 所示。


圖5-6 傳感器實物圖

HC-SR04模塊集成了發(fā)射和接受電路,硬件上不必再自行設計繁復的發(fā)射及接收電路,軟件上也無需再通過定時器產(chǎn)生40Khz的方波引起壓電陶瓷共振從而產(chǎn)生超聲波。使用時,只要在控制端‘Trig’發(fā)一個大于10us寬度的高電平,就可以在接收端‘Echo’等待高電平輸出。單片機一旦檢測到有輸出就打開定時器開始計時。當此口變?yōu)榈碗娖綍r就停止計時并讀出定時器的值,此值就為此次測距的時間,再根據(jù)傳播速度方可算出障礙物的距離。

5.2 T40、R40超聲波傳感器簡介
5-7 元件內(nèi)部結(jié)構(gòu)
5-8 元件外部結(jié)構(gòu)

5.2.1 超聲波傳感器的基本介紹

超聲波測距換能器是利用超聲波的特性研制而成的換能器。超聲波是一種振動頻率高于聲波的機械波,由換能晶片在電壓的激勵下發(fā)生振動產(chǎn)生的,它具有頻率高、波長短、繞射現(xiàn)象小,特別是方向性好、能夠成為射線而定向傳播等特點。超聲波對液體、固體的穿透本領很大,尤其是在陽光不透明的固體中,它可穿透幾十米的深度。超聲波碰到雜質(zhì)或分界面會產(chǎn)生顯著反射形成反射成回波,碰到活動物體能產(chǎn)生多普勒效應。因此超聲波檢測廣泛應用在工業(yè)、國防、生物醫(yī)學等方面。

以超聲波作為檢測手段,必須產(chǎn)生超聲波和接收超聲波。完成這種功能的裝置就是超聲波換能器,或者探頭。

超聲波換能器主要由壓電晶片組成,既可以發(fā)射超聲波,也可以接收超聲波。小功率超聲探頭多作探測作用。它有許多不同的結(jié)構(gòu),可分直探頭(縱波)、斜探頭(橫波)、表面波探頭(表面波)、蘭姆波探頭(蘭姆波)、雙探頭(一個探頭反射、一個探頭接收)等。

5.2.2 超聲波傳感器的主要應用

超聲波傳感技術(shù)應用在生產(chǎn)實踐的不同方面,而醫(yī)學應用是其最主要的應用之一,下面以醫(yī)學為例子說明超聲波傳感技術(shù)的應用。超聲波在醫(yī)學上的應用主要是診斷疾病,它已經(jīng)成為了臨床醫(yī)學中不可缺少的診斷方法。超聲波診斷的優(yōu)點是:對受檢者無痛苦、無損害、方法簡便、顯像清晰、診斷的準確率高等。因而推廣容易,受到醫(yī)務工作者和患者的歡迎。超聲波診斷可以基于不同的醫(yī)學原理,我們來看看其中有代表性的一種所謂的A型方法。這個方法是利用超聲波的反射。當超聲波在人體組織中傳播遇到兩層聲阻抗不同的介質(zhì)界面是,在該界面就產(chǎn)生反射回聲。每遇到一個反射面時,回聲在示波器的屏幕上顯示出來,而兩個界面的阻抗差值也決定了回聲的振幅的高低。

在工業(yè)方面,超聲波的典型應用是對金屬的無損探傷和超聲波測厚兩種。過去,許多技術(shù)因為無法探測到物體組織內(nèi)部而受到阻礙,超聲波傳感技術(shù)的出現(xiàn)改變了這種狀況。當然更多的超聲波傳感器是固定地安裝在不同的裝置上,“悄無聲息”地探測人們所需要的信號。在未來的應用中,超聲波將與信息技術(shù)、新材料技術(shù)結(jié)合起來,將出現(xiàn)更多的智能化、高靈敏度的超聲波傳感器。

超聲波距離傳感器技術(shù)應用

超聲波對液體、固體的穿透本領很大,尤其是在陽光不透明的固體中,它可穿透幾十米的深度。

超聲波碰到雜質(zhì)或分界面會產(chǎn)生顯著反射形成反射成回波,碰到活動物體能產(chǎn)生多普勒效應。因此超聲波檢測廣泛應用在工業(yè)、國防、生物醫(yī)學等方面。超聲波距離傳感器可以廣泛應用在物位(液位)監(jiān)測,機器人防撞,各種超聲波接近開關(guān),以及防盜報警等相關(guān)領域,工作可靠,安裝方便, 防水型,發(fā)射夾角較小,靈敏度高,方便與工業(yè)顯示儀表連接,也提供發(fā)射夾角較大的探頭。

5.2.3 超聲波傳感器的工作原理

超聲波是一種在彈性介質(zhì)中的機械振蕩,有兩種形式:橫向振蕩(橫波)及縱向振蕩(縱波)。在工業(yè)中應用主要采用縱向振蕩。超聲波可以在氣體、液體及固體中傳播,其傳播速度不同。另外,它也有折射和反射現(xiàn)象,并且在傳播過程中有衰減。在空氣中傳播超聲波,其頻率較低,一般為幾十KHZ,而在固體、液體中則頻率可用得較高。在空氣中衰減較快,而在液體及固體中傳播,衰減較小,傳播較遠。利用超聲波的特性,可做成各種超聲傳感器,配上不同的電路,制成各種超聲測量儀器及裝置,并在通迅,醫(yī)療家電等各方面得到廣泛應用。

超聲波傳感器主要材料有壓電晶體(電致伸縮)及鎳鐵鋁合金(磁致伸縮)兩類。電致伸縮的材料有鋯鈦酸鉛(PZT)等。壓電晶體組成的超聲波傳感器是一種可逆?zhèn)鞲衅,它可以將電能轉(zhuǎn)變成機械振蕩而產(chǎn)生超聲波,同時它接收到超聲波時,也能轉(zhuǎn)變成電能,所以它可以分成發(fā)送器或接收器。有的超聲波傳感器既作發(fā)送,也能作接收。這里僅介紹小型超聲波傳感器,發(fā)送與接收略有差別,它適用于在空氣中傳播,工作頻率一般為23-25KHZ及40-45KHZ。這類傳感器適用于測距、遙控、防盜等用途。該種有T/R-40-60,T/R-40-12等(其中T表示發(fā)送,R表示接收,40表示頻率為40KHZ,16及12表示其外徑尺寸,以毫米計)。另有一種密封式超聲波傳感器(MA40EI型)。它的特點是具有防水作用(但不能放入水中),可以作料位及接近開關(guān)用,它的性能較好。超聲波應用有三種基本類型,透射型用于遙控器,防盜報警器、自動門、接近開關(guān)等;分離式反射型用于測距、液位或料位;反射型用于材料探傷、測厚等。

由發(fā)送傳感器(或稱波發(fā)送器)、接收傳感器(或稱波接收器)、控制部分與電源部分組成。發(fā)送器傳感器由發(fā)送器與使用直徑為15mm左右的陶瓷振子換能器組成,換能器作用是將陶瓷振子的電振動能量轉(zhuǎn)換成超能量并向空中輻射;而接收傳感器由陶瓷振子換能器與放大電路組成,換能器接收波產(chǎn)生機械振動,將其變換成電能量,作為傳感器接收器的輸出,從而對發(fā)送的超進行檢測.而實際使用中,用發(fā)送傳感器的陶瓷振子的也可以用做接收器傳感器社的陶瓷振子?刂撇糠种饕獙Πl(fā)送器發(fā)出的脈沖鏈頻率、占空比及稀疏調(diào)制和計數(shù)及探測距離等進行控制

5.3 超聲波發(fā)射電路

HC-SR04模塊內(nèi)部超聲波發(fā)射電路如圖5-6所示,主要由Em78p153單片機、MAX232及超聲波發(fā)射換能器T40組成。

圖5-9 超聲波發(fā)射電路

5.4 超聲波接收電路
HC-SR04模塊內(nèi)部超聲波接收電路如圖5-3所示,主要由TL074運算放大器及超聲波接換能器R40組成。
圖5-10 超聲波接收電路


5.5 超聲波接收過程

    單片機初始化,HC-SR04內(nèi)部ECHO接口與單片機P1.1的引腳相連,發(fā)射接口TRIG與單片機的P1.2引腳相接。

單片機開啟中斷,單片機P1.1給“Trig”接口一個約為20us的高電平,經(jīng)過HC-SR04模塊內(nèi)EM78P153發(fā)送8個連續(xù)的40KHz脈沖的信號,經(jīng)過MAX232電平轉(zhuǎn)換,提高發(fā)射功率。換能器將電脈沖信號轉(zhuǎn)換為超聲波發(fā)射。

    當單片機的給一個20us的觸發(fā)信號時,TRIG由低電平轉(zhuǎn)換為高電平,TRIG=1,

單片機開時計時,開啟中斷,并記錄時間為T1,接收換能器等待接收回波,ECHO持續(xù)為高電平的時間為發(fā)射時間。換能器接收回波將超聲波轉(zhuǎn)換為電信號,送至單片機,記錄時間為T2。超聲波發(fā)射的時間為:T2-T1,

計算發(fā)射距離為:

L = (T2-T1)xC/2

如果等待回波時間超過65ms時,則無法接收到回波,單片機初始化,重新發(fā)射接收下一次回波。

5.6 接收數(shù)據(jù)處理

單片機初始化函數(shù)
5-11程序流程圖

接收過程:上電后先進行初始化,主要是對各變量即定時器0進行初始化,然后單片機給‘Trig’端一個約為20us的高電平,此后在‘Echo’端等待一個高電平,一旦檢測到高電平,則立即打開定時器,開始計時。此后只要定時器0中的值不超過約為65ms(65.5536ms)的計時上限,則認為仍處在有效測量范圍內(nèi),并未進入盲區(qū),則在‘Echo’等待低電平的產(chǎn)生,一旦檢測到低電平,立即讀出此時的TH0和TL0,并關(guān)閉定時器0。則超聲波從發(fā)射到返回總共所用時間為:time=TH0*256+TL0(us),再根據(jù)超聲波常溫下(27℃)在空氣中的傳播速度,(約為344m/s)計算出障礙物的距離,在數(shù)碼管上進行動態(tài)的實時顯示即可。

接收數(shù)據(jù)處理子程序如下:

              c_send = 1;                                       //10us的高電平觸發(fā)
              delay();
              c_send = 0;            
              TH0 = 0;                                      //給定時器0清零
              TL0 = 0;
              TR0 = 0;                                                          //關(guān)定時器0定時
              flag_hc_value = 0;
              while(!c_recive);                              //當c_recive為零時等待
              TR0=1;
              while(c_recive)                                  //當c_recive為1計數(shù)并等待
              {
                            flag_time0 = TH0 * 256 + TL0;
                            if((flag_hc_value > 1) || (flag_time0 > 65000))     //當超聲波超過測量范圍時,顯示3個888
                            {
                                          TR0 = 0;
                                          flag_csb_juli = 2;
                                          distance = 888;
                                          flag_hc_value = 0;
                                          break ;                           
                            }
                            else
                            {
                                          flag_csb_juli = 1;            
                            }
              }
              if(flag_csb_juli == 1)
              {            
                            TR0=0;                                                                                                 //關(guān)定時器0定時
                            distance = TH0;                                                             //讀出定時器0的時間
                            distance = distance * 256 + TL0;
                            distance +=( flag_hc_value * 65536);//算出超聲波測距的時間              得到單位是ms
                            distance *= 0.017;               // 0.017 = 340M / 2 = 170M = 0.017M 算出來是米
                            if(distance > 350)                                                        //距離 = 速度 * 時間
                            {            
                                          distance = 888;                                                        //如果大于3.8m就超出超聲波的量程
                            }
              }  
第六章總結(jié)

本次設計介紹了一種基于單片機的超聲波測距系統(tǒng)的設計,給出了相應的軟件和硬件的設計方案。

超聲波測距的原理與雷達測距原理相似,通過超聲波發(fā)射裝置發(fā)出超聲波,根據(jù)接收器接到超聲波時的時間差就可以知道距離,也就是說超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時單片機開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波單片機就立即停止計時,再利用對應的計算公式就可以求出物體間的間距,這是根據(jù)反射原理利用了超聲波指向性強,在介質(zhì)中傳播距離較遠的特性。

超聲波測距儀硬件電路的設計主要包括單片機的基本電路、超聲波發(fā)射接收模塊控制電路、顯示電路、語音模塊,溫度補償五部分部分組成。單片機采用了STC89C52,晶振為12MHz,單片機P1.3端口輸出10us的觸發(fā)信號,由定時器T0計得時間間隔,顯示電路采用1602,語音芯片WTD588D。

本次設計的超聲波測距系統(tǒng)滿足倒車測距等所需的測量精度,而且反映速度快、控制簡單、成本低廉等,測距范圍為2cm到350cm。但由于經(jīng)驗不足還有些地方有待完善。在要求精度較高的地方時,由于超聲波在空氣中的傳播速度受溫度影響有點大,則需考慮到不同溫度時超聲波的傳播速度變換。

總體來說,經(jīng)過本次設計讓我學到了很多,從中受益匪淺。了解了超聲波測距的原理,并對單片機的開發(fā)和電路設計有了更進一步的了解。

致  謝

經(jīng)過幾個月的努力本次畢業(yè)設計已經(jīng)接近尾聲。畢業(yè)設計是對我們知識運用能力的一次全面的考核,培養(yǎng)我們綜合運用所學知識和獨立分析問題并且解決問題的能力。

首先,我要感謝王老師在畢業(yè)設計中對我給予的悉心指導和嚴格要求,我要感謝和我一起做畢業(yè)設計的同學。在畢業(yè)設計的短短3個月里,你們給我提出很多寶貴的意見,給了我不少幫助還有工作上的支持,在此也真誠的謝謝你們。同時,我還要感謝我的寢室同學和身邊的朋友,正是在這樣一個團結(jié)友愛,相互促進的環(huán)境中,在和他們的相互幫助和啟發(fā)中,才有我今天的小小收獲

經(jīng)過幾個月的努力本次畢業(yè)設計已經(jīng)接近尾聲。畢業(yè)設計是對我們知識運用能力的一次全面的考核,培養(yǎng)我們綜合運用所學知識和獨立分析問題并且解決問題的能力。最后再次深深感謝我的導師趙老師以及給予我?guī)椭耐瑢W和朋友。


參考資料

[1] 張國熊. 測控電路[M]. 北京:機械工業(yè)出版社,2003.

[2] 閻石. 數(shù)字電子技術(shù)基礎[M]. 北京:高等教育出版社,2004.

[3] 侯媛彬等. 凌陽單片機原理及其畢業(yè)設計精選[M]. 科學出版社,2006.

[4] 李建忠. 單片機原理及應用[M]. 西安:西安電子科技大學出版社,2008.

[5] 霍孟友等. 單片機原理與應用[M]. 北京:機械工業(yè)出版社,2004.

[6] 高惠芳.單片機原理及系統(tǒng)設計 杭州電子科技大學電子信息學校,2009

[7] 王安敏,張凱基于STC89C52 單片機的超聲波測距系統(tǒng) 儀表技術(shù)與傳感器

[8] 張珩,劉亞杰STC89C52 超聲波測距倒車防撞報警系統(tǒng) 現(xiàn)代電子技術(shù)

[9] 彭偉.單片機C語言程序設計設計實訓[M].西安:電子工業(yè)出版社,2009.
[10] 徐江海.數(shù)碼管顯示電路設計制造[M].合肥:機械工業(yè)出版社,2003.
[11] Maurice Wilkes.Progress in Computers.Prestige Lecture delivered to IEE, Cambridge, on 5 February 2004

附錄1原理圖

附錄2主要源程序


單片機源程序如下:
  1. #include
  2. #include
  3. #define uchar unsigned char
  4. #define uint  unsigned int

  5. #include "lcd1602.h"

  6. sbit c_send   = P0^7;                            //超聲波發(fā)射
  7. sbit c_recive = P0^6;                            //超聲波接收
  8. uchar flag_hc_value;        //超聲波中間變量


  9. bit flag_300ms ;


  10. long distance;                      //距離
  11. uint set_d;                          //距離
  12. bit flag_csb_juli;        //超聲波超出量程
  13. uint  flag_time0;     //用來保存定時器0的時候的

  14. //  按鍵的IO變量的定義
  15. uchar menu_1;        //菜單設計的變量
  16. uchar a_a;

  17. /***********************語音模塊控制IO口的定義************************/
  18. sbit  VSDA = P0^1;
  19. sbit  VCS  = P0^2;
  20. sbit  VSCL = P0^3;
  21. sbit  VRST = P0^4;
  22. sbit  VBUSY= P0^0;            
  23. uchar yujing[3];

  24. /***************************
  25.                  語音地址的安排
  26. 0 - 9 :  對應數(shù)字0到9
  27. 0b    : 點
  28. 0c    : 米
  29. 0d    : 已超出量程
  30. ****************************/


  31. /***********************1ms延時函數(shù)*****************************/
  32. void delay_1ms(uint q)
  33. {
  34.               uint i,j;
  35.               for(i=0;i<q;i++)
  36.                             for(j=0;j<120;j++);
  37. }

  38. void  delay_us (unsigned int us)
  39. {

  40.               while(us--)
  41.               {
  42.                             _nop_();
  43.               }
  44. }

  45. /***********************三線發(fā)碼子程序************************/
  46. void Send_threelines(unsigned char addr)
  47. {
  48.    unsigned char i;
  49.               VRST=0;
  50.               delay_1ms(5);
  51.               VRST=1;
  52.               delay_1ms(20); /* 復位拉高20ms*/
  53.               VCS=0;
  54.               delay_1ms(5);  /* 片選拉低5ms */
  55.     for(i=0;i<8;i++)
  56.               {
  57.                             VSCL=0;
  58.                             if(addr&0x01)
  59.                             {
  60.                                           VSDA=1;
  61.                             }
  62.                             else
  63.                                           VSDA=0;
  64.                             addr>>=1;
  65.                             delay_us(150); /* 150us */
  66.                             VSCL=1;
  67.                             delay_us(150); /* 150us */
  68.               }
  69.               VCS=1;
  70. }

  71. /***********************處理距離函數(shù)****************************/
  72. void smg_display()
  73. {
  74.               yujing[0] = distance % 10;            
  75.               yujing[1] = distance / 10 % 10;            
  76.               yujing[2] = distance / 100 % 10;            
  77. }

  78. void delay()
  79. {
  80.               _nop_();                                        //執(zhí)行一條_nop_()指令就是1us
  81.               _nop_();
  82.               _nop_();
  83.               _nop_();
  84.               _nop_();
  85.               _nop_();
  86.               _nop_();
  87.               _nop_();
  88.               _nop_();
  89.               _nop_();
  90.               _nop_();
  91.               _nop_();
  92.               _nop_();
  93. }


  94. /*********************超聲波測距程序*****************************/
  95. void send_wave()
  96. {
  97.               c_send = 1;                                       //10us的高電平觸發(fā)
  98.               delay();
  99.               c_send = 0;            
  100.               TH0 = 0;                                      //給定時器0清零
  101.               TL0 = 0;
  102.               TR0 = 0;                                                          //關(guān)定時器0定時
  103.               flag_hc_value = 0;
  104.               while(!c_recive);                              //當c_recive為零時等待
  105.               TR0=1;
  106.               while(c_recive)                                  //當c_recive為1計數(shù)并等待
  107.               {
  108.                             flag_time0 = TH0 * 256 + TL0;
  109.                             if((flag_hc_value > 1) || (flag_time0 > 65000))      //當超聲波超過測量范圍時,顯示3個888
  110.                             {
  111.                                           TR0 = 0;
  112.                                           flag_csb_juli = 2;
  113.                                           distance = 888;
  114.                                           flag_hc_value = 0;
  115.                                           break ;                           
  116.                             }
  117.                             else
  118.                             {
  119.                                           flag_csb_juli = 1;            
  120.                             }
  121.               }
  122.               if(flag_csb_juli == 1)
  123.               {            
  124.                             TR0=0;                                                                                                  //關(guān)定時器0定時
  125.                             distance = TH0;                                                             //讀出定時器0的時間
  126.                             distance = distance * 256 + TL0;
  127.                             distance +=( flag_hc_value * 65536);//算出超聲波測距的時間              得到單位是ms
  128.                             distance *= 0.017;               // 0.017 = 340M / 2 = 170M = 0.017M 算出來是米
  129.                             if(distance > 350)                                                        //距離 = 速度 * 時間
  130.                             {            
  131.                                           distance = 888;                                                        //如果大于3.8m就超出超聲波的量程
  132.                             }
  133.               }
  134. }


  135. /*********************定時器0、定時器1初始化******************/
  136. void time_init()               
  137. {
  138.               EA  = 1;                              //開總中斷
  139.               TMOD = 0X11;                //定時器0、定時器1工作方式1
  140.               ET0 = 1;                              //開定時器0中斷
  141.               TR0 = 1;                              //允許定時器0定時
  142.               ET1 = 1;                              //開定時器1中斷
  143.               TR1 = 1;                              //允許定時器1定時            
  144. }


  145. uchar value = 8;
  146. void main()
  147. {
  148.               send_wave();              //測距離函數(shù)
  149.               smg_display();              //處理距離顯示函數(shù)
  150.               time_init();
  151.               init_1602();
  152.               while(1)
  153.               {
  154.                             if(flag_300ms == 1)
  155.                             {
  156.                                           value ++;
  157.                                           if(value >= 12)                            //5秒鐘自動播放一次
  158.                                           {
  159.                                                         value = 0;
  160.                                                         if(distance == 888)
  161.                                                         {
  162.                                                                       Send_threelines(0x0d);                //超出量程
  163.                                                                       delay_1ms(1000);
  164.                                                         }
  165.                                                         else
  166.                                                         {
  167.                                                                       Send_threelines(yujing[2]);                 //語音播放
  168.                                                                       delay_1ms(400);                                                      
  169.                                                                       Send_threelines(0x0b);
  170.                                                                       delay_1ms(400);
  171.                                                                       Send_threelines(yujing[1]);
  172.                                                                       delay_1ms(400);
  173.                                                                       Send_threelines(yujing[0]);
  174.                                                                       delay_1ms(400);
  175.                                                                       Send_threelines(0x0c);
  176.                                                                       delay_1ms(400);
  177.                                                         }
  178.                                           }                                                                                                                                                                                                      
  179.                                           flag_300ms = 0;
  180.                                           send_wave();              //測距離函數(shù)
  181.                                           if(menu_1 == 0)
  182.                                                         smg_display();              //處理距離顯示函數(shù)
  183. ……………………

  184. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
超聲波測距語音播報論文.doc (1.08 MB, 下載次數(shù): 108)


評分

參與人數(shù) 1黑幣 +1 收起 理由
xgang320 + 1 回帖助人的獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:254412 發(fā)表于 2017-12-11 14:30 | 只看該作者
很有用謝謝
回復

使用道具 舉報

板凳
ID:260447 發(fā)表于 2017-12-11 23:54 來自觸屏版 | 只看該作者
感謝樓主,學習到了
回復

使用道具 舉報

地板
ID:434071 發(fā)表于 2018-11-27 11:43 | 只看該作者
感謝6666666666666
回復

使用道具 舉報

5#
ID:434121 發(fā)表于 2018-11-27 13:29 | 只看該作者
感謝!樓主6666
回復

使用道具 舉報

6#
ID:444537 發(fā)表于 2018-12-12 15:32 | 只看該作者
感謝樓主!!
回復

使用道具 舉報

7#
ID:352784 發(fā)表于 2020-3-25 19:15 | 只看該作者
不完全正確,需要小改幾個地方
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清免费视频 | 日韩欧美在线播放 | 麻豆一区一区三区四区 | 国产欧美精品 | 在线看亚洲 | 一区二区三区精品视频 | av手机在线看 | 狠狠做深爱婷婷综合一区 | 国产99久久精品一区二区300 | 中文天堂在线观看 | 欧美色专区 | 中文精品视频 | 日韩高清成人 | 91免费观看视频 | 视频一区二区三区中文字幕 | 午夜精品导航 | 日韩精品无码一区二区三区 | 神马久久久久久久久久 | 日本黄色激情视频 | 91资源在线 | 精品国产乱码久久久久久1区2区 | 色香蕉在线 | 久久久久久久久久久久91 | 日日射影院 | 国产精品久久久久久一区二区三区 | 久久久99国产精品免费 | 久久综合九色综合欧美狠狠 | 久久精品视频99 | 精品日韩一区二区 | 国产精品一区二区三区在线 | 成人在线小视频 | 国产四虎| 女同av亚洲女人天堂 | a级毛片毛片免费观看久潮喷 | 91免费在线 | 亚洲欧美中文字幕在线观看 | 国产高清在线视频 | 国产色婷婷久久99精品91 | 欧美一区二区三区久久精品 | 欧美一区二区三区久久精品视 | 成人精品一区二区三区 |