液位測(cè)量及控制廣泛應(yīng)用于工業(yè)、生活等領(lǐng)域,由于許多測(cè)量環(huán)境條件及其惡劣,例如對(duì)具有腐蝕性的液體的液位測(cè)量。顯然,傳統(tǒng)的液位測(cè)量設(shè)備已不能滿要求。因此,一些基于超聲波的非接觸式液位測(cè)量控制技術(shù)應(yīng)運(yùn)而生。本文利用單片機(jī)的強(qiáng)大功能,通過硬件和軟件的完美結(jié)合,設(shè)計(jì)、實(shí)現(xiàn)了一種基于超聲波的液位檢測(cè)控制系統(tǒng)。系統(tǒng)由液位測(cè)量模塊、數(shù)據(jù)顯示模塊、液位控制模塊、超限報(bào)警模塊和參數(shù)設(shè)置模塊組成,通過HC-SR04超聲波測(cè)距模塊采集數(shù)據(jù),經(jīng)過單片機(jī)進(jìn)行數(shù)據(jù)處理,然后進(jìn)行實(shí)時(shí)液位顯示,同時(shí)發(fā)出液位控制信號(hào)和報(bào)警控制信號(hào)。最后,對(duì)所實(shí)現(xiàn)的實(shí)物進(jìn)行了測(cè)試。測(cè)試結(jié)果表明系統(tǒng)功能符合設(shè)計(jì)要求,能達(dá)到易控制、穩(wěn)定性強(qiáng)、測(cè)量精度高、安全性高、功耗低的預(yù)期目的。
目 錄
第一章 緒論 第一節(jié) 課題的提出和意義 一、課題的提出 二、課題的意義 第二節(jié) 國內(nèi)外液位檢測(cè)控制技術(shù)的發(fā)展現(xiàn)狀 第三節(jié) 本課題主要研究內(nèi)容 第二章 整體方案設(shè)計(jì) 第一節(jié) 方案設(shè)計(jì)架構(gòu) 第二節(jié) 超聲波測(cè)量技術(shù) 一、超聲波的定義及特性 二、超聲波測(cè)距原理 第三節(jié) 本章小結(jié) 第三章 硬件設(shè)計(jì) 第一節(jié) 單片機(jī)的最小系統(tǒng)組成 第二節(jié) LCD1602液晶顯示模塊 一、LCD1602液晶顯示簡介 二、顯示內(nèi)容 第三節(jié) 設(shè)置模塊 第四節(jié) 報(bào)警模塊 第五節(jié) 液位測(cè)量模塊 一、HC-SR04簡介 二、引腳接線方式 三、模塊工作原理 第六節(jié) 液位控制模塊 第七節(jié) 本章小結(jié) 第四章 軟件設(shè)計(jì) 第一節(jié) 編譯語言與編譯思想 第二節(jié) 軟件設(shè)計(jì) 一、總體設(shè)計(jì) 二、關(guān)鍵模塊程序設(shè)計(jì) 第三節(jié) 本章小結(jié) 第五章 仿真及調(diào)試 第一節(jié) 仿真 第二節(jié) 系統(tǒng)測(cè)試 第三節(jié) 本章小結(jié) 結(jié) 論 致 謝 參考文獻(xiàn) 附 錄 一、英文原文 二、英文翻譯 三、源程序
第一章 緒論
第一節(jié) 課題的提出和意義
一、課題的提出 在日常生產(chǎn)生活中,常遇到液位測(cè)量及控制問題。比如在一些工業(yè)生產(chǎn)自動(dòng)化系統(tǒng)中對(duì)容器中物料位或者液位的測(cè)量,又特別是極其惡劣的環(huán)境下的測(cè)量,比如對(duì)具有腐蝕性的液體液位的測(cè)量,傳統(tǒng)的采用差位分布電極的電極法,通過電脈沖去檢測(cè)液位高度,電極長期處于這種環(huán)境中,極易被電解、腐蝕,從而很容易在短時(shí)間內(nèi)就失去靈敏性。顯然,在這種檢測(cè)環(huán)境對(duì)測(cè)試設(shè)備的抗腐蝕性要求較高。因此傳統(tǒng)的液位測(cè)量設(shè)備已不能滿足現(xiàn)代工業(yè)生產(chǎn)的需要。超聲波液位檢測(cè)系統(tǒng)是一種新興的液位測(cè)量系統(tǒng),它利用了超聲波傳感技術(shù)的原理,采取一種非接觸檢測(cè)方法,能夠?qū)崿F(xiàn)對(duì)工業(yè)生產(chǎn)自動(dòng)化系統(tǒng)中液位、物料位等進(jìn)行檢測(cè)。此外,超聲波具有很好的束射性和方向性,一般也不會(huì)對(duì)人體造成傷害。基于超聲波的檢測(cè)控制系統(tǒng)具有實(shí)施方便、迅速,測(cè)量精度高,易于實(shí)時(shí)控制,所以有非常廣闊的應(yīng)用領(lǐng)域。 隨著人們生活需求和工業(yè)標(biāo)準(zhǔn)的提高,液位檢測(cè)技術(shù)愈來愈受到社會(huì)的重視,檢測(cè)的精度以及實(shí)時(shí)性要求也愈來愈高,另外還要求檢測(cè)系統(tǒng)對(duì)被檢測(cè)對(duì)象具有自動(dòng)控制功能。可以說,在現(xiàn)在以及今后的很長一段時(shí)間里,液位的檢測(cè)及控制系統(tǒng)的研究也將依然是一個(gè)重要的課題。 二、課題的意義 為了改善工人的工作環(huán)境,降低工人的勞動(dòng)強(qiáng)度,節(jié)省財(cái)力、物力,避免資源的浪費(fèi),降低工業(yè)生產(chǎn)成本,特別是對(duì)某些特殊的生產(chǎn)環(huán)境,比如:易爆、高溫、低溫、毒性、腐蝕性、高壓、低壓、有輻射性、易揮發(fā)等液體的液位進(jìn)行檢測(cè),對(duì)于這些對(duì)身體健康有一定損害的測(cè)量環(huán)境,不易在實(shí)地直接進(jìn)行測(cè)量及控制,而這種新興的液位測(cè)量及控制技術(shù)就顯得特別的重要。 在現(xiàn)代工業(yè)自動(dòng)化生產(chǎn)系統(tǒng)中,對(duì)容器中液體的液位測(cè)量及控制是必不可少的。一般情況下,在生產(chǎn)過程中主要是通過液位的檢測(cè)來確定容器里原料的剩余量,以保證生產(chǎn)過程中的各環(huán)節(jié)物料平衡,以及為進(jìn)行成本核算提供可靠的依據(jù);另外,在連續(xù)生產(chǎn)情況下,通過液位檢測(cè)及控制以保證液位始終在規(guī)定的范圍內(nèi),以保證生產(chǎn)的正常進(jìn)行,也能更好的保證產(chǎn)品產(chǎn)量和產(chǎn)品質(zhì)量。可見,液位測(cè)量及控制在現(xiàn)代工業(yè)生產(chǎn)過程中已起著舉足輕重的作用。 僅從液位測(cè)量這一方面來講,隨著各行業(yè)的不斷發(fā)展,液位測(cè)量已應(yīng)用到愈來愈多的領(lǐng)域,不僅僅是用于各種管道、容器內(nèi)的液位檢測(cè),還用于水庫水渠、江河湖海等水位的檢測(cè)。傳統(tǒng)的液位檢測(cè)手段在這些領(lǐng)域中已經(jīng)無法達(dá)到所需要的精確性,因此,超聲波液位測(cè)量這種測(cè)量方式已經(jīng)成為一種新方法被廣泛的應(yīng)用。
第二節(jié) 國內(nèi)外液位檢測(cè)控制技術(shù)的發(fā)展現(xiàn)狀
早期的液位檢測(cè)大多采用機(jī)械原理。近年來,隨著電子技術(shù)應(yīng)用到越來越廣泛的領(lǐng)域,也逐步向液位檢測(cè)及控制方向發(fā)展,并且研究出來了一些新的液位檢測(cè)技術(shù)。盡管在傳統(tǒng)技術(shù)中也滲透了一些先進(jìn)的電子技術(shù)及計(jì)算機(jī)技術(shù),在結(jié)構(gòu)和功能上也都有很大提升,但總體來說,目前我國的液位檢測(cè)技術(shù)還是比較落后,液位檢測(cè)方法也依然有一些不足之處,如果從國外進(jìn)口我們所需的高精度液位檢測(cè)設(shè)備,價(jià)格又比較高。因此,分析液位檢測(cè)控制技術(shù)當(dāng)前國內(nèi)外形勢(shì),發(fā)展屬于我們自己國家的液位檢測(cè)技術(shù)就顯得非常重要。目前,國內(nèi)外在液位檢測(cè)方面采用的技術(shù)更多的是傳統(tǒng)檢測(cè)技術(shù),按其采用的檢測(cè)技術(shù)及使用方法分類就已多達(dá)十余種。我們常見的液位檢測(cè)技術(shù)有:浮體式液位測(cè)量儀表、人工檢尺儀、磁致伸縮液位儀、差壓式液位測(cè)量儀表、激光液位儀、雷達(dá)液位儀、超聲波液位測(cè)量儀表、伺服式液位測(cè)量儀表。 超聲波液位檢測(cè)儀是我們最常見的一種,也是所有非接觸式液位檢測(cè)儀表中用途最廣、發(fā)展最快的一種。它具有一些其它液位測(cè)量技術(shù)無法比擬的優(yōu)點(diǎn),它可以適應(yīng)腐蝕性強(qiáng)、高壓、低壓、有輻射性、有毒性、高溫、低溫、易揮發(fā)、易爆等特殊環(huán)境,因此,能應(yīng)用的范圍比其它的檢測(cè)技術(shù)更廣泛。隨著現(xiàn)在科學(xué)技術(shù)的飛速發(fā)展,液位的檢測(cè)方法也變得更先進(jìn),精度也有了很大的提高。尤其是傳感器技術(shù)和單片機(jī)技術(shù)的進(jìn)步使得液位檢測(cè)技術(shù)得到了更進(jìn)一步的優(yōu)化。超聲波在液位測(cè)量中的應(yīng)用愈來愈廣,但從現(xiàn)在的發(fā)展水平看來,超聲波在液位檢測(cè)控制系統(tǒng)中的應(yīng)用還存在著一定的限度,因此研究超聲波的液位檢測(cè)技術(shù)還有更寬更長的路要走,無論是在技術(shù)領(lǐng)域還是在產(chǎn)業(yè)領(lǐng)域它都具有極其廣闊的發(fā)展空間。 在不遠(yuǎn)的將來,基于超聲波的液位檢測(cè)控制技術(shù)將會(huì)有更大更廣的應(yīng)用范圍。它不但可以幫助人們解決很多生活中的難題,還可以作為一種科學(xué)探測(cè)和研究的手段。
第三節(jié) 本課題主要研究內(nèi)容
本設(shè)計(jì)以簡易水槽和水泵搭建實(shí)驗(yàn)?zāi)P停b于單片機(jī)的液位測(cè)量控制裝置具有工作壽命長、測(cè)量精確、耗能低、重復(fù)性好等優(yōu)點(diǎn),設(shè)計(jì)以單片機(jī)為基礎(chǔ)、超聲波測(cè)距為核心的液位測(cè)量控制系統(tǒng)。本系統(tǒng)具有液位實(shí)時(shí)檢測(cè)、控制、超限報(bào)警等功能。設(shè)計(jì)的內(nèi)容包括: 設(shè)計(jì)基于超聲波液位檢測(cè)控制系統(tǒng)方案,實(shí)現(xiàn)液位檢測(cè)、數(shù)據(jù)顯示及閉環(huán)控制等功能; 設(shè)計(jì)、實(shí)現(xiàn)檢測(cè)控制器相關(guān)的軟硬件模塊; 實(shí)現(xiàn)演示系統(tǒng)開發(fā)。
第一節(jié) 方案設(shè)計(jì)架構(gòu)
根據(jù)實(shí)際生產(chǎn)生活需要,結(jié)合課題設(shè)計(jì)要求,本設(shè)計(jì)應(yīng)該具有正常液位范圍設(shè)定、液位測(cè)量、超限報(bào)警、液位顯示、液位控制五大功能。方案設(shè)計(jì)架構(gòu)如圖2.1所示。
1.001.jpg (20.3 KB, 下載次數(shù): 104)
下載附件
2017-5-3 20:51 上傳
圖2.1 液位測(cè)量控制系統(tǒng)設(shè)計(jì)方案
正常液位設(shè)定在該系統(tǒng)中對(duì)應(yīng)輸入設(shè)備,即后文所說的設(shè)置系統(tǒng)。可以通過設(shè)置系統(tǒng)將人的信息傳遞給系統(tǒng),使得系統(tǒng)工作具有一定的目的性。實(shí)時(shí)液位測(cè)量是系統(tǒng)數(shù)據(jù)采集的唯一來源,用HC-SR04 超聲波測(cè)距模塊采集的數(shù)據(jù)經(jīng)過單片機(jī)處理過后將成為后面液位顯示、超限報(bào)警、液位控制等功能實(shí)現(xiàn)的重要依據(jù),因此,實(shí)時(shí)液位測(cè)量是系統(tǒng)能否正常工作的關(guān)鍵所在。超限報(bào)警是在實(shí)時(shí)液位與設(shè)定正常液位范圍比較之后做出的反應(yīng),提示相關(guān)工作人員該系統(tǒng)檢測(cè)控制的對(duì)象正處于一種非正常狀態(tài)(在這里主要指液位過高或過低)。液位顯示是將單片機(jī)通過HC-SR04 測(cè)距模塊采集回來的實(shí)時(shí)液位數(shù)據(jù)顯示出來,便于相關(guān)工作人員了解具體情況。液位控制模塊作為該系統(tǒng)唯一的執(zhí)行器,主要功能是通過排水泵和進(jìn)水泵保證液位始終在人為預(yù)先設(shè)定的一個(gè)正常范圍內(nèi)。
第二節(jié) 超聲波測(cè)量技術(shù)
在第一節(jié)整體方案框圖中可以很明顯的看出,實(shí)時(shí)液位測(cè)量是系統(tǒng)工作的整個(gè)流程中的關(guān)鍵部分,因此,與此緊密相關(guān)的超聲波液位測(cè)量技術(shù)在這里起著舉足輕重的作用。 一、超聲波的定義及特性 頻率大于20000Hz的聲波稱之為超聲波。 超聲波具有吸收特性、束射特性、聲壓、高功率作用四個(gè)基本特性,四個(gè)基本特性使超聲波在傳播介質(zhì)中對(duì)應(yīng)熱學(xué)、化學(xué)、光學(xué)、力學(xué)和電學(xué)五種效應(yīng)。超聲波的特點(diǎn)是它能在各種媒質(zhì)中傳播;波長短,因而分辨率很好;聲束尖銳,因而聲能比較集中;在不同的介質(zhì)的界面上都會(huì)發(fā)生折射、反射、散射等一般現(xiàn)象。利用聲在媒質(zhì)中的衰減、反射、共振、聲速這些現(xiàn)象可以測(cè)量物質(zhì)的成分、比重、厚度等。可用于測(cè)距、測(cè)速、清洗、焊接、碎石、殺菌消毒等。在軍事、醫(yī)學(xué)、農(nóng)業(yè)、工業(yè)上都會(huì)有很多的應(yīng)用。利用超聲波脈沖反射回波這一特點(diǎn)可以實(shí)現(xiàn)超聲波測(cè)距。 二、超聲波測(cè)距原理 空氣中的超聲波每秒的傳播距離約為340米,因此,若能測(cè)出在介質(zhì)中超聲波的傳播時(shí)間,就能計(jì)算出超聲波在該介質(zhì)中傳播的距離。超聲波測(cè)距就是通過測(cè)定超聲波在測(cè)量儀與被測(cè)對(duì)象間的傳播的時(shí)間來計(jì)算出聲波傳送的距離的。常用的超聲波測(cè)距主要采用以下兩種方法: 1、直接式超聲波測(cè)距法 測(cè)量超聲波發(fā)射器發(fā)射超聲波到超聲波接收器接收到超聲波的時(shí)間t1,已知超聲波在傳播介質(zhì)中的傳播速度V,那么超聲波發(fā)射器與被測(cè)對(duì)象兩者之間的距離S1為:
1.002.jpg (635 Bytes, 下載次數(shù): 107)
下載附件
2017-5-3 20:51 上傳
1.003.jpg (1.34 KB, 下載次數(shù): 97)
下載附件
2017-5-3 20:51 上傳
(式2-1) 2、反射式超聲波測(cè)距法 將超聲波發(fā)送器的發(fā)射方向面對(duì)被測(cè)對(duì)象,并發(fā)射超聲波,在發(fā)射超聲波的同時(shí)計(jì)時(shí)開始,超聲波在介質(zhì)中傳播,遇到被測(cè)物后就立即反射回來,超聲波接收器在接收到被測(cè)對(duì)象反射回來的超聲波后計(jì)時(shí)停止,這樣就可以計(jì)算出超聲波從發(fā)射器到被測(cè)物間來回傳播的時(shí)間t2,超聲波在該傳播介質(zhì)中的傳播速度V已知,從而發(fā)射器到被測(cè)物的距離S2可用下式計(jì)算出來:
1.004.jpg (1.76 KB, 下載次數(shù): 109)
下載附件
2017-5-3 20:51 上傳
(式2-2)
第三節(jié) 本章小結(jié)
對(duì)于任何的系統(tǒng)設(shè)計(jì),整體方案的擬定是極其重要的,就如同一篇文章的提綱。本課題是基于單片機(jī)的超聲波檢測(cè)控制系統(tǒng)設(shè)計(jì),其中的各個(gè)模塊的選定都必須符合實(shí)際情況需要,并且最好能保證成本低廉、選材容易。 超聲波測(cè)量技術(shù)是本次設(shè)計(jì)中的關(guān)鍵所在,由于超聲波具有其傳播距離遠(yuǎn)、能量散失緩慢、方向性強(qiáng)等優(yōu)點(diǎn),因此常常應(yīng)用于距離的測(cè)量。如測(cè)距儀和液位測(cè)量儀等都可以通過超聲波原理來實(shí)現(xiàn)。超聲波測(cè)距也廣泛應(yīng)用于倒車?yán)走_(dá)、建筑工地以及井深、液位、管道長度等一些工業(yè)現(xiàn)場(chǎng),在這些場(chǎng)合利用超聲波測(cè)量常常計(jì)算簡單、比較快捷,并且容易做到實(shí)時(shí)控制,能夠保證足夠高的測(cè)量精度,因此在測(cè)控系統(tǒng)的研制上也得到了極其廣泛的應(yīng)用。本課題就是做一套以AT89C51單片機(jī)和超聲波測(cè)距模塊為核心的低成本、高精度、微型化、低能耗、具有數(shù)字顯示功能的超聲波液位檢測(cè)及控制系統(tǒng)。
第三章 硬件設(shè)計(jì)
第一節(jié) 單片機(jī)的最小系統(tǒng)組成
所謂單片機(jī)的最小系統(tǒng),就是用最少元件組成的能夠工作的單片機(jī)系統(tǒng)。MCS-51系列單片機(jī)的最小系統(tǒng)至少應(yīng)該包括單片機(jī)、時(shí)鐘電路、復(fù)位電路、輸入/輸出設(shè)備,如圖3.1所示。
1.005.jpg (21.38 KB, 下載次數(shù): 88)
下載附件
2017-5-3 20:51 上傳
圖3.1 單片機(jī)最小系統(tǒng) 在最小系統(tǒng)的時(shí)鐘電路中,XTAL1(單片機(jī)的19腳)和XTAL2(單片機(jī)的18腳)是獨(dú)立的輸入、輸出反相放大器,這兩個(gè)腳能夠利用石英晶振為單片機(jī)配置片內(nèi)振蕩器,此外,也可以直接通過XTAL1 、XTAL2由外部時(shí)鐘驅(qū)動(dòng)。本次設(shè)計(jì)中采用的是內(nèi)部時(shí)鐘模式,也就是用單片機(jī)的內(nèi)部振蕩電路時(shí)鐘。在XTAL1 、XTAL2的引腳上分別外接與需要相匹配元件,即一個(gè)石英晶體和兩個(gè)電容,內(nèi)部振蕩器就可以產(chǎn)生自激振蕩。通常情況下,晶振的值可以在1.2~12MHz 之間任意選擇,在本次設(shè)計(jì)中采用的是11.0592M 的石英晶振。通過改變和晶振并聯(lián)的兩個(gè)電容的大小可以微調(diào)頻率。如果選用石英晶振,并聯(lián)電容可在20~40pF之間任意選擇,本此設(shè)計(jì)使用的是30pF,是單片機(jī)設(shè)計(jì)中常用的一個(gè)經(jīng)典值。 復(fù)位電路在單片機(jī)系統(tǒng)中也是非常關(guān)鍵的,當(dāng)單片機(jī)死機(jī)或程序跑飛時(shí),就需要進(jìn)行復(fù)位操作。MCS-51系列單片機(jī)的復(fù)位引腳是RST(第9管腳),當(dāng)RST出現(xiàn)2個(gè)10ms或者更長的高電平時(shí),單片機(jī)就會(huì)執(zhí)行復(fù)位操作。若RST一直為高電平,單片機(jī)就將會(huì)處于循環(huán)復(fù)位的狀態(tài),當(dāng)然這種情況沒有什么實(shí)際的意義。 通常有兩種最基本形式進(jìn)行單片機(jī)的復(fù)位操作,即開關(guān)復(fù)位和上電自動(dòng)復(fù)位,這兩種最基本復(fù)位方式都已包含在圖3.1中。上電自動(dòng)復(fù)位過程如下:上電瞬間,有極電容兩端電壓是不會(huì)變的,由于此時(shí)電容負(fù)極和復(fù)位引腳RST相連,所以電壓全部加在電阻上,RST的輸入為高電平,芯片進(jìn)行復(fù)位操作,隨之然后5V電源開始給電容充電,電阻上的電壓慢慢減小,最后約為零,芯片就開始正常工作。將復(fù)位按鍵并聯(lián)在電容的兩端,當(dāng)復(fù)位按鍵沒有按下時(shí)電路實(shí)現(xiàn)的是以上所說的上電復(fù)位。而在芯片正常工作后,可以通過按下復(fù)位按鍵使RST管腳出現(xiàn)高電平從而實(shí)現(xiàn)手動(dòng)復(fù)位。理論上只要RST 管腳上持續(xù)10ms或者更長的高電平,就可以使單片機(jī)進(jìn)行有效復(fù)位操作。以上設(shè)計(jì)圖中所示的復(fù)位電阻和電容均為經(jīng)典值,實(shí)際應(yīng)用的時(shí)候可用同一數(shù)量級(jí)合適的電阻和電容替換,設(shè)計(jì)時(shí)也可根據(jù)自身設(shè)計(jì)需要自行計(jì)算RC充電時(shí)間以選取合適的電阻、電容值,以保證單片機(jī)的復(fù)位電路可靠,符合實(shí)際需求。
第二節(jié) LCD1602液晶顯示模塊
一、LCD1602液晶顯示簡介 液晶顯示有多種分類方式,常常可以按液晶顯示器的顯示方式分為字符式、段式、點(diǎn)陣式。除了最簡單的黑白顯示方式外,液晶顯示器還有彩色、多灰度等顯示方式,另外,還可以調(diào)節(jié)芯片的特定引腳電壓控制其顯示對(duì)比度。如果根據(jù)驅(qū)動(dòng)方式來分,還可以分為主動(dòng)矩陣驅(qū)動(dòng)(Active Matrix)、單純矩陣驅(qū)動(dòng)(Simple Matrix)、靜態(tài)驅(qū)動(dòng)(Static)三種。 根據(jù)實(shí)際情況綜合考慮,本次設(shè)計(jì)采用的是LCD1602液晶顯示。LCD1602利用液晶的物理特性,用電壓去控制顯示的區(qū)域,有電就有顯示,這樣即可以顯示出與輸出信息相對(duì)應(yīng)的圖形。這種液晶顯示器具有厚度薄、易于實(shí)現(xiàn)全彩色顯示、適用于大規(guī)模集成電路直接驅(qū)動(dòng)的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、移動(dòng)通信工具等各個(gè)領(lǐng)域。 本次設(shè)計(jì)的LCD1602液晶顯示模塊與單片機(jī)連接如圖3.2。
1.006.jpg (21.52 KB, 下載次數(shù): 109)
下載附件
2017-5-3 20:51 上傳
圖3.2 LCD1602液晶顯示模塊設(shè)計(jì)圖 二 、顯示內(nèi)容 本次設(shè)計(jì)的液晶顯示模塊顯示內(nèi)容分為兩行兩列,其內(nèi)容分別為實(shí)時(shí)液位(DIS)、設(shè)定值的高限(DH)、液位狀態(tài)(U(正常)、H(過高)、L(過低))、設(shè)定值的低限(DL)。
第三節(jié) 設(shè)置模塊
設(shè)置模塊共設(shè)計(jì)了四個(gè)按鍵,主要任務(wù)是設(shè)定預(yù)設(shè)液位的正常范圍(預(yù)設(shè)正常液位范圍的上、下限)。如圖3.3。
1.007.jpg (13.1 KB, 下載次數(shù): 77)
下載附件
2017-5-3 20:51 上傳
圖3.3 設(shè)置系統(tǒng) Key1:模式(DH或者DL)選擇,用于設(shè)置預(yù)設(shè)正常液位的范圍; Key2:選擇每次改變值的大小,即每次遞增(減)1或者0.1; Key3:遞加; Key4:遞減。
第四節(jié) 報(bào)警模塊
報(bào)警模塊共設(shè)置兩個(gè)燈光報(bào)警器。當(dāng)液位超過預(yù)設(shè)范圍的最大值時(shí),led1亮;當(dāng)液位低于預(yù)設(shè)范圍的最小值時(shí),led2亮。如圖3.4所示。
1.008.jpg (6.69 KB, 下載次數(shù): 84)
下載附件
2017-5-3 20:51 上傳
圖3.4 報(bào)警系統(tǒng)
第五節(jié) 液位測(cè)量模塊
一、HC-SR04簡介 HC-SR04超聲波測(cè)距模塊的有效測(cè)量距離為2cm-400cm,檢測(cè)的精度為1 mm,模塊包括信號(hào)控制電路、超聲波接收器和超聲波發(fā)射器。其實(shí)物圖如圖3.5,原理圖如圖3.6。
1.009.jpg (21.05 KB, 下載次數(shù): 96)
下載附件
2017-5-3 20:51 上傳
圖3.5 HC-SR04 實(shí)物圖
1.010.jpg (27.76 KB, 下載次數(shù): 109)
下載附件
2017-5-3 20:51 上傳
圖3.6 HC-SR04原理圖 HC-SR04電氣參數(shù)如表3.1:
表3.1 HC-SR04電氣參數(shù)
二、引腳接線方式 VCC:供5V電源; Trig:輸入出發(fā)控制信號(hào); Echo:輸出回響信號(hào); GND:接地。
三、模塊工作原理 超聲波測(cè)距模塊采用單片機(jī)I/O口觸發(fā)測(cè)距,給模塊的控制端口一個(gè)10us以上的高電平信號(hào),模塊就會(huì)啟動(dòng)工作模式,自動(dòng)發(fā)送8個(gè)40khz的方波,然后在超聲波接收端開始自動(dòng)檢測(cè)是否有返回信號(hào)。若有信號(hào)返回,就通過一個(gè)I/O口輸出高電平,超聲波從超聲波發(fā)射器到被測(cè)對(duì)象之間來回傳播所用的時(shí)間就是這個(gè)高電平的保持時(shí)間,這個(gè)過程時(shí)序圖如圖3.7。
1.011.jpg (10.09 KB, 下載次數(shù): 98)
下載附件
2017-5-3 20:51 上傳
圖3.7 HC-SR04模塊工作時(shí)序圖
第六節(jié) 液位控制模塊
液位控制模塊分為進(jìn)水系統(tǒng)和排水系統(tǒng)。當(dāng)液位超過預(yù)設(shè)液位范圍的最大值時(shí),排水系統(tǒng)運(yùn)行,通過微型水泵將槽內(nèi)的水陸續(xù)排除,直到槽內(nèi)液位低于預(yù)設(shè)范圍的最大值;當(dāng)液位低于預(yù)設(shè)液位范圍的最小值時(shí),進(jìn)水系統(tǒng)運(yùn)行,通過微型水泵向槽內(nèi)加水,直到槽內(nèi)液位高于預(yù)設(shè)范圍的最小值。控制模塊的設(shè)計(jì)如圖3.8所示。
1.012.jpg (9.84 KB, 下載次數(shù): 97)
下載附件
2017-5-3 20:51 上傳
1.013.jpg (8.28 KB, 下載次數(shù): 86)
下載附件
2017-5-3 20:51 上傳
a b 圖3.8 液位控制模塊
第七節(jié) 本章小結(jié)
一個(gè)大的系統(tǒng)總是可以分為多個(gè)模塊的,每個(gè)模塊又是這個(gè)系統(tǒng)正常實(shí)現(xiàn)所有功能不可缺少的部分。在最初的系統(tǒng)設(shè)計(jì)中常常用這種化大為小的設(shè)計(jì)方式,從而使得設(shè)計(jì)過程變得更有條理。特別是每個(gè)模塊可以分給不同的人進(jìn)行設(shè)計(jì)時(shí),這樣就加快了方案的設(shè)計(jì)進(jìn)度。
第四章 軟件設(shè)計(jì)
第一節(jié) 編譯語言與編譯思想
匯編語言和C語言是目前單片機(jī)的兩種主流編程語言。匯編語言的優(yōu)點(diǎn)是代碼短、程序效率高,但存在可移植性可讀性差的缺點(diǎn);C語言的優(yōu)點(diǎn)是可移植性好、可讀性好,但存在代碼較長、代碼效率較低的缺點(diǎn)。考慮到本次設(shè)計(jì)的超聲波液位測(cè)量控制系統(tǒng)要求不太高,本次超聲波液位測(cè)量控制系統(tǒng)的設(shè)計(jì)采用C語言編寫。 本次軟件設(shè)計(jì)采用程序設(shè)計(jì)模塊化的思想,對(duì)實(shí)現(xiàn)不同功能的程序進(jìn)行分段編程,這樣不但使得整個(gè)程序有比較清晰的層次和結(jié)構(gòu),而且還很有利于軟件的后期調(diào)試和修改。按本次設(shè)計(jì)的需要,單片機(jī)主要任務(wù)是發(fā)出控制信號(hào)使超聲波模塊開始工作并自動(dòng)發(fā)出40kHz的脈沖,控制信號(hào)驅(qū)動(dòng)超聲波探頭器發(fā)射超聲波,同時(shí)單片機(jī)通過一個(gè)I/O口檢測(cè)回波,該I/O口在有回波時(shí)輸出高電平,高電平持續(xù)時(shí)間即是超聲波的傳播時(shí)間,由此得出超聲波在測(cè)距系統(tǒng)與被測(cè)物間的往返傳輸時(shí)間t,再用前文推導(dǎo)的公式(式2-2) 可求出待測(cè)距離S。
第二節(jié) 軟件設(shè)計(jì)
單片機(jī)液位控制系統(tǒng)的軟件首要功能是控制超聲波的發(fā)射和接收,測(cè)量介質(zhì)中超聲波的傳播時(shí)間,再根據(jù)介質(zhì)中超聲波的傳輸傳播速度來計(jì)算出被測(cè)對(duì)象與測(cè)量儀器之間的距離,并將計(jì)算出來的數(shù)據(jù)加上相關(guān)標(biāo)識(shí)用LCD1602液晶顯示器顯示出來,同時(shí)使單片機(jī)輸出控制信號(hào)以控制報(bào)警系統(tǒng)和液位控制系統(tǒng)。要實(shí)現(xiàn)上述功能,軟件具體來說應(yīng)該包含初始化、參數(shù)讀入、超聲波發(fā)射、超聲波傳接收、計(jì)時(shí)、距離計(jì)算、數(shù)據(jù)顯示、超限報(bào)警、液位控制等功能模塊。程序設(shè)計(jì)流程圖如圖4.1所示。
1.014.jpg (13.68 KB, 下載次數(shù): 95)
下載附件
2017-5-3 20:51 上傳
過高 過低 圖4.1 程序設(shè)計(jì)流程圖 二、關(guān)鍵模塊程序設(shè)計(jì) 1、超聲波測(cè)距子程序 通過測(cè)量超聲波模塊與液面的傳播時(shí)間來計(jì)算液面高度,流程圖如圖4.2。
1.015.jpg (12.63 KB, 下載次數(shù): 90)
下載附件
2017-5-3 20:51 上傳
圖4.2 超聲波測(cè)距程序設(shè)計(jì)流程圖 測(cè)距程序如下: void CJ(void) { Trig=1; //啟動(dòng)一次檢測(cè)模塊 delay_20us(); Trig=0; //停止向檢測(cè)模塊Trig端發(fā)送高電平 while(!Echo); //無回波時(shí)等待 TR0=1; //計(jì)時(shí)開始 while(Echo); //有回波是計(jì)數(shù)并繼續(xù)等待 TR0=0; time=TH0*256+TL0; /計(jì)算超聲波的傳播時(shí)間 TH0=0; TL0=0; distance=145.05-time*0.172;// 計(jì)算距離,算出來的單位是mm if(distance<=0)distance=0; if(distance>=145.05)distance=145.05; // distance=(int)(distance*100)/100; //強(qiáng)制保留2位小數(shù) } 2、按鍵控制子程序 通過按鍵控制程序?qū)崿F(xiàn)參數(shù)設(shè)定,其中主要是正常液位范圍的設(shè)定。包括設(shè)置參數(shù)的模式選擇、單次遞增(減)值大小(1或0.1)、遞減、遞增。程序如下: float set_distance(float set_dis) { if(!key3) { delay(10); if(!key3) { while(!key3); set_dis=set_dis+b; if(set_dis>=99) set_dis=99; } } …… return set_dis; } 3、顯示子程序 顯示程序?qū)崿F(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示,包括實(shí)時(shí)液位,允許的最高液位和最低液位,液位正常與否的狀態(tài)。程序如下: void display(uchar x,uchar y,uchar sz,uint num)//x:位置 y:第幾排 sz:位數(shù) num:值 { uchar a[5]={0}; uchar i=0; uint Temp=num; while(Temp) { a[ i] = Temp%10; Temp = Temp/10; i++; } if(y%2==1) write_Com(0x80+x-1); else write_Com(0xc0+x-1); for(i=sz;i>0;i--) { write_Data(0x30+a[i-1]); } } 4、主程序 主程序通過調(diào)用個(gè)子程序?qū)崿F(xiàn)各功能。主程序如下: void main() { uint w; init(); while(1) { w++; if(w==5) { w=0; CJ(); } BJ(); display_Init(); } } 5、延時(shí)子程序 在系統(tǒng)編程中,延時(shí)程序的應(yīng)用是極其普遍的,按鍵的延時(shí)去抖就是一個(gè)很好的例子。本次設(shè)計(jì)的演示程序如下: void delay(uint x) { uint i,j; for(j=0;j<x;j++)[ size][="" p][p="24," null,="" left][size="12pt]" for(i="0;i
第三節(jié) 本章小結(jié)
程序是一個(gè)系統(tǒng)運(yùn)行必不可少的一部分,如果沒有程序,硬件設(shè)備就如同虛設(shè)。因此,程序的編寫及變得極其重要。本次程序設(shè)計(jì)語言選用我們比較熟悉的是C語言,而且編寫過程中又采用了模塊化方法,從而更易于編寫和理解,也有助于后期的修改和調(diào)試。
第五章 仿真及調(diào)試
第一節(jié) 仿真
結(jié)合Protues和Keil軟件,將設(shè)計(jì)的程序與電路在電腦上仿真,由于超聲波液位測(cè)距模塊沒有相應(yīng)的仿真元件,故超聲波液位測(cè)距模塊無法進(jìn)行仿真,現(xiàn)將實(shí)時(shí)液位設(shè)為一固定值,通過改變?cè)O(shè)定正常液位的上下限來實(shí)現(xiàn)仿真。 如圖5.1,實(shí)時(shí)液位為25.0mm,上限為25.5mm,下限為24.5mm,即當(dāng)實(shí)時(shí)液位在正常液位范圍內(nèi)時(shí),報(bào)警系統(tǒng)和水位控制系統(tǒng)均無異常。
1.016.jpg (40.4 KB, 下載次數(shù): 123)
下載附件
2017-5-3 20:51 上傳
圖5.1 仿真(液位正常)
如圖5.2,實(shí)時(shí)液位為25.0mm,上限為24.5mm,下限為23.5mm,即當(dāng)實(shí)時(shí)液位高于正常液位范圍內(nèi)時(shí),報(bào)警系統(tǒng)led1亮,排水系統(tǒng)啟動(dòng)。
1.017.jpg (45.14 KB, 下載次數(shù): 79)
下載附件
2017-5-3 20:51 上傳
圖5.2 仿真(液位過高)
通過以上仿真,可以說明編寫的程序是正確的,并且能夠?qū)崿F(xiàn)預(yù)期的所有功能,這也有利于后面的實(shí)物功能實(shí)現(xiàn)。
第二節(jié) 系統(tǒng)測(cè)試
在程序編譯完成并仿真調(diào)試成功和硬件電路制作完成之后,將編譯好的程序下載到本次設(shè)計(jì)所用的單片機(jī)上,進(jìn)行下一步的綜合調(diào)試。綜合調(diào)試成功后對(duì)檢測(cè)控制的重復(fù)一致性和誤差進(jìn)行相關(guān)分析,從而進(jìn)一步優(yōu)化該系統(tǒng)的性能,以達(dá)到預(yù)期設(shè)計(jì)的檢測(cè)及控制要求。硬件實(shí)物圖如5.3所示。 現(xiàn)在設(shè)置正常液位下限為80.5mm,上限為99.5mm。 當(dāng)實(shí)時(shí)液位為72.2mm,即液位小于80.5mm時(shí),系統(tǒng)紅色水位過低報(bào)警燈亮啟,并啟動(dòng)進(jìn)水系統(tǒng),使得液面逐漸升高。實(shí)物運(yùn)行圖5.4。
1.018.jpg (45.1 KB, 下載次數(shù): 92)
下載附件
2017-5-3 20:51 上傳
圖5.3 硬件實(shí)物圖
1.019.jpg (44.91 KB, 下載次數(shù): 93)
下載附件
2017-5-3 20:51 上傳
圖5.4 系統(tǒng)調(diào)試圖(一)
當(dāng)實(shí)時(shí)液位為88.8mm,即液位大于80.5mm且小于99.5時(shí),液位在正常范圍之內(nèi),報(bào)警系統(tǒng)和水位控制系統(tǒng)均無異常。實(shí)物運(yùn)行圖如圖5.5。
1.020.jpg (43.68 KB, 下載次數(shù): 84)
下載附件
2017-5-3 20:51 上傳
圖5.5 系統(tǒng)調(diào)試圖(二) 當(dāng)實(shí)時(shí)液位為110.4mm,大于99.5mm時(shí),系統(tǒng)綠色水位過高報(bào)警燈亮啟,并啟動(dòng)排水系統(tǒng),使得液面逐漸下降,直到在正常液位范圍內(nèi)。實(shí)物運(yùn)行圖如圖5.6。
1.021.jpg (43.83 KB, 下載次數(shù): 90)
下載附件
2017-5-3 20:51 上傳
圖5.6 系統(tǒng)調(diào)試圖(三)
第三節(jié) 本章小結(jié)
在仿真及調(diào)試中總會(huì)遇到一些或大或小的問題,在本次設(shè)計(jì)的仿真及調(diào)試中主要遇到以下三個(gè)問題: 控制電機(jī)起停的繼電器不工作。 問題分析及解決方案:記過反復(fù)實(shí)驗(yàn)發(fā)現(xiàn)造成上問題的原因是單片機(jī)發(fā)出的控制信號(hào)經(jīng)過一個(gè)功率放大器后仍然太弱,不足以能夠控制繼電器。于是在之前的基礎(chǔ)上再加一個(gè)功率放大器,最后實(shí)現(xiàn)了單片機(jī)輸出控制信號(hào)通過繼電器控制進(jìn)、排水泵的起停。 用一個(gè)電源為該系統(tǒng)中所有模塊時(shí),系統(tǒng)不能正常工作。 問題分析及解決方案:查明是水泵負(fù)載過大導(dǎo)致系統(tǒng)出現(xiàn)上述問題。解決辦法是為液位控制模塊單獨(dú)供電。并且設(shè)計(jì)水泵的額定電壓為3.3V,系統(tǒng)提供的電壓為5V不適合為該水泵供電。 在液位控制系統(tǒng)的作用下,液位在設(shè)置的上限和下限附近時(shí)出現(xiàn)抖動(dòng)(進(jìn)(排)水系統(tǒng)時(shí)而運(yùn)行時(shí)而停止、報(bào)警燈持續(xù)閃爍)。 問題分析及解決方案:通過反復(fù)試驗(yàn)觀察發(fā)現(xiàn)是由于液位采集頻率過高,水泵停止時(shí)水管中還未排出的那段水返回原來的水槽內(nèi)。以液位在上限處為例:液位從超出設(shè)定上限在排水泵的作用下剛好低于設(shè)定上限時(shí),排水泵停止工作,此時(shí)排水管中還未排出的那段水又會(huì)在重力作用下回到被測(cè)液位的水槽中,導(dǎo)致水槽中的水位再一次上升,從而又會(huì)再次啟動(dòng)排水泵,如此循環(huán)。 解決辦法是通過改變控制程序降低液位采集頻率,增大兩次液位檢測(cè)的時(shí)間間隔,從而增大兩次水泵控制信號(hào)發(fā)出的間隔時(shí)間,從而增大這期間水泵的排水量,使得水泵停止后水管中為排出的那段水即使回到水槽中也不會(huì)超過設(shè)定的液位上限。
結(jié) 論
本設(shè)計(jì)以單片機(jī)為核心,利用超聲波測(cè)距原理,通過軟件程序的編寫、實(shí)物的制作、以及軟硬件的綜合調(diào)試,最終實(shí)現(xiàn)系統(tǒng)的液位測(cè)量及控制功能。系統(tǒng)的實(shí)物包括超聲波發(fā)射及接收模塊、報(bào)警模塊、顯示模塊、設(shè)置模塊、液位控制模塊等;在軟件設(shè)計(jì)上采用了模塊化的程序設(shè)計(jì)思想,提高了程序編寫的效率。本設(shè)計(jì)能夠?qū)?cm~400cm的距離內(nèi)進(jìn)行有效的測(cè)量,其精度可以達(dá)到1mm,并達(dá)到了低成本、高精度、低功耗、微型化、美觀的預(yù)期設(shè)計(jì)目的。可見基于單片機(jī)設(shè)計(jì)的超聲波液位測(cè)量控制系統(tǒng)具有硬件結(jié)構(gòu)簡單、工作可靠等特點(diǎn)。本系統(tǒng)不僅可以用于液位檢測(cè),距離測(cè)量,還可廣泛應(yīng)用于諸如移動(dòng)機(jī)器人精確定位等各種檢測(cè)控制系統(tǒng)中。
附 錄 一、英文原文
1.022.jpg (77.61 KB, 下載次數(shù): 88)
下載附件
2017-5-3 20:51 上傳
1.023.jpg (49.66 KB, 下載次數(shù): 92)
下載附件
2017-5-3 20:51 上傳
1.024.jpg (55.14 KB, 下載次數(shù): 100)
下載附件
2017-5-3 20:51 上傳
1.025.jpg (68.77 KB, 下載次數(shù): 84)
下載附件
2017-5-3 20:51 上傳
1.026.jpg (56.5 KB, 下載次數(shù): 83)
下載附件
2017-5-3 20:51 上傳
1.027.jpg (68.15 KB, 下載次數(shù): 85)
下載附件
2017-5-3 20:51 上傳
1.028.jpg (76.79 KB, 下載次數(shù): 86)
下載附件
2017-5-3 20:51 上傳
1.029.jpg (40.98 KB, 下載次數(shù): 82)
下載附件
2017-5-3 20:51 上傳
1.030.jpg (95.38 KB, 下載次數(shù): 96)
下載附件
2017-5-3 20:51 上傳
二、英文翻譯 一項(xiàng)超聲波距離測(cè)量中可行且精確的確定飛行時(shí)間的技術(shù) Tarik Namas and Murat Dogruel Sarajevo國際大學(xué)自然科學(xué)工程系 電子郵箱: mdogruel@ius.edu.ba 摘要——這篇文章提出了一種關(guān)于在空中高精度超聲波距離測(cè)量的高效算法的數(shù)字信號(hào)處理技術(shù)。開始發(fā)射脈沖和響應(yīng)峰值之間的時(shí)差用于確定飛行時(shí)間(TOF)。過濾后的峰值響應(yīng)決定于使用Hilbert變換和適當(dāng)?shù)膾佄锞插值處理過的一個(gè)特殊的復(fù)雜信號(hào)的幅值。該方法有效地消除了接收信號(hào)中的噪聲和干擾,使得TOF與接收到的信號(hào)強(qiáng)度無關(guān)。實(shí)驗(yàn)結(jié)果表明精度優(yōu)于千分之一。 【關(guān)鍵詞】 超聲波測(cè)距 飛行時(shí)間 Hilbert變換 拋物線插值 1、簡介 許多科學(xué)和工業(yè)應(yīng)用需要距離測(cè)量,一些地方需要非接觸式測(cè)量。空氣中的距離通常通過使用超聲波傳感器測(cè)量,這類系統(tǒng)價(jià)格便宜并能提供很好的性能。 根據(jù)不同的應(yīng)用程序中,有很多使用超聲波技術(shù)來測(cè)量距離[1]。 它主要測(cè)量原理是根據(jù)估計(jì)飛行時(shí)間(TOF)來計(jì)算距離。接收機(jī)和發(fā)射機(jī)之間的距離d = v×TOF ,v是聲音在傳播介質(zhì)中的速度(通常情況下是空氣速度) [2]。 一個(gè)簡單而快速典型的方法來確定TOF是閾值方法[3],然而,這種方法不是首選,因?yàn)橛捎谠肼暫湾e(cuò)誤的振幅,所以接收到的信號(hào)并不是固定的。 確定TOF的另一種方法是互相關(guān)技術(shù)[4]。時(shí)間在接收和傳輸信號(hào)之間的哪個(gè)地方互相關(guān)的最大,就在這里取得TOF。 在距離測(cè)量中,一個(gè)不同的概念就是相移法。通過測(cè)量信號(hào)發(fā)射和接收之間的相移計(jì)算距離[5]。組合這兩個(gè)以前的概念被認(rèn)為是第三個(gè)甚至更準(zhǔn)確的概念[6]。 我們采用一種新方法確定TOF,即使用時(shí)間(樣本)的峰值(接收信號(hào))和開始發(fā)射脈沖的不同響應(yīng)。 避免使用被噪聲影響的閾值水平,超聲波前置放大器的峰值轉(zhuǎn)換成舉行脈沖,從而決定TOF。 2、建議方法。 從理論上講,一個(gè)典型雙二階系統(tǒng)的振蕩響應(yīng)如圖1。這個(gè)信號(hào)大約代表當(dāng)一個(gè)發(fā)射機(jī)發(fā)射脈沖信號(hào)時(shí)超聲波接收器接收信號(hào)的期望值。
1.031.jpg (15.72 KB, 下載次數(shù): 89)
下載附件
2017-5-3 20:51 上傳
1.032.jpg (16 KB, 下載次數(shù): 87)
下載附件
2017-5-3 20:51 上傳
圖1 超聲換能器的預(yù)期響應(yīng) 圖2 一個(gè)典型的超聲收發(fā)短脈沖的實(shí)際響應(yīng) 另一方面,超聲波收發(fā)器的實(shí)際響應(yīng)是短脈沖,如圖2所示。由于非線性影響,這個(gè)形狀足夠接近,但不完全與圖1中的理論情況下相同。 這種方法介紹了輕松、準(zhǔn)確地找到在脈沖開始和響應(yīng)峰值間的時(shí)差,可以概括為如下: 1.使用數(shù)據(jù)采集設(shè)備,在延遲之間傳輸大量短脈沖; 2.獲得傳播的信號(hào)和收到的信號(hào),確定開始脈沖的樣本; 3.消除噪聲的影響,從接收到的信號(hào)Sh [n]獲得的帶通過濾過的信號(hào)Sb[n]; 4.找到相應(yīng)的由Sh[n] 到Sb[n] 的Hilbert變換; 5.使用
1.033.jpg (2.73 KB, 下載次數(shù): 80)
下載附件
2017-5-3 20:51 上傳
確定超聲波的包絡(luò)響應(yīng); 6.獲得平滑的包絡(luò)信號(hào),Eb[n],在E上使用零相位正向和反向帶通濾波; 7.在Eb[n]的峰值處應(yīng)用拋物線插值來確定相應(yīng)的拋物線的最大峰值實(shí)際樣本的位置; 8.計(jì)算實(shí)際樣品差別,在脈沖和高峰值獲得相應(yīng)的TOF; 9.找到所有其他脈沖TOF值脈沖序列,找出TOF的平均水平值準(zhǔn)確地確定距離。
3、實(shí)驗(yàn)裝置 實(shí)驗(yàn)的設(shè)置是圖3和圖4所示。使用一個(gè)IOtech PCI-DAQboard / 3000產(chǎn)生脈沖序列和獲取響應(yīng)。 操作在最大1 MHz 16位分辨率。發(fā)射脈沖獲得一個(gè)數(shù)量10伏特樣本,總寬度為12個(gè)微秒。
1.034.jpg (4.82 KB, 下載次數(shù): 94)
下載附件
2017-5-3 20:51 上傳
1.035.jpg (3.93 KB, 下載次數(shù): 93)
下載附件
2017-5-3 20:51 上傳
圖3 一般的實(shí)驗(yàn)設(shè)置 圖4 發(fā)射機(jī)和接收機(jī)設(shè)置 商業(yè)超聲換能器使用40 KHz的中心頻率,發(fā)射器與接收器相對(duì)。如圖5所示。使用MATLAB進(jìn)行重復(fù)的獲取和算法實(shí)現(xiàn)。 發(fā)射機(jī)和接收機(jī)安裝在圖4中使用,所以只有一個(gè)模擬輸入通道可以用于發(fā)送和接收信號(hào)。另一種替代方法是使用兩個(gè)模擬輸入獲取信號(hào)和接收信號(hào)。在這種情況下不需要使用發(fā)射機(jī)和接收機(jī)之間的電阻(鏈接點(diǎn)見圖4)。 用于測(cè)量羅盤實(shí)驗(yàn)平均誤差為0.05毫米。 因?yàn)檫@項(xiàng)工作中使用的采樣率是1MHz,聲音在空氣中傳播速度大概是330米/秒,這個(gè)誤差相當(dāng)于一個(gè)采樣間隔是0.33毫米。
1.036.jpg (9.97 KB, 下載次數(shù): 90)
下載附件
2017-5-3 20:51 上傳
圖5 測(cè)量系統(tǒng)設(shè)置 4、結(jié)果 在圖6中,10個(gè)傳播的脈沖和對(duì)應(yīng)的接收信號(hào)顯示在一起。圖7顯示了一個(gè)放大了的脈沖部分。
1.037.jpg (16.93 KB, 下載次數(shù): 82)
下載附件
2017-5-3 20:51 上傳
1.038.jpg (15.54 KB, 下載次數(shù): 82)
下載附件
2017-5-3 20:51 上傳
圖6 超聲波脈沖序列 圖7 圖6中的一部分放大 根據(jù)所述方法,可以發(fā)現(xiàn)信號(hào)的包絡(luò)E如圖8所示。平滑的包絡(luò)信號(hào)Eb通過應(yīng)用零相位數(shù)字濾波如圖9所示。
1.039.jpg (17.38 KB, 下載次數(shù): 84)
下載附件
2017-5-3 20:51 上傳
1.040.jpg (16.67 KB, 下載次數(shù): 92)
下載附件
2017-5-3 20:51 上傳
圖8 超聲波響應(yīng)的包絡(luò) 圖9 過濾后的包絡(luò)信號(hào) 對(duì)于每一個(gè)距離測(cè)量實(shí)驗(yàn),都用20個(gè)離散的脈沖延時(shí)16毫秒。每次測(cè)量計(jì)算的平均樣本不同。平均各種距離結(jié)果描繪在圖10中,平均樣本差異和實(shí)際距離呈現(xiàn)非常準(zhǔn)確的線性關(guān)系。
1.041.jpg (20.71 KB, 下載次數(shù): 98)
下載附件
2017-5-3 20:51 上傳
圖10 平均樣本差異和實(shí)際距離之間的線性關(guān)系 表1中,實(shí)際的測(cè)量距離,平均樣本差異,標(biāo)準(zhǔn)偏差的測(cè)量。從中可以看出標(biāo)準(zhǔn)偏差值非常小,表明測(cè)量非常粗略。 獲得相應(yīng)的距離測(cè)量,平均樣本差異和距離之間形成了一個(gè)仿射關(guān)系,在毫米校準(zhǔn)測(cè)量系統(tǒng)距離在75.5毫米和146.3毫米之間。 在表2中,實(shí)際的距離和相應(yīng)的超聲測(cè)量的距離,獲得相應(yīng)的測(cè)量誤差。 與用1 MHz超聲波測(cè)量一個(gè)采樣間隔距離產(chǎn)生0.33毫米的誤差相比,相應(yīng)的測(cè)量誤差獲得相當(dāng)小,表明所使用的測(cè)量方法的準(zhǔn)確性和魯棒性。
表1 樣本差異和標(biāo)準(zhǔn)差 表2 實(shí)際和測(cè)量距離
1.042.jpg (20.61 KB, 下載次數(shù): 67)
下載附件
2017-5-3 20:51 上傳
1.043.jpg (20.74 KB, 下載次數(shù): 80)
下載附件
2017-5-3 20:51 上傳
5、結(jié)論 研究提出利用包絡(luò)的峰值時(shí)間值的超聲短脈沖響應(yīng)這一新方法計(jì)算飛行時(shí)間。 提出了實(shí)驗(yàn)裝置搭建方式和算法,一個(gè)可行的和準(zhǔn)確的超聲波距離測(cè)量系統(tǒng)就可以通過中等大小單片機(jī)有效地實(shí)現(xiàn),不需要復(fù)雜的電子設(shè)備和其他方法。
參考文獻(xiàn) [1] B. Barshan, “Fast Processing Techniques for Accurate Ultrasonic Range Measurements”, Measurement Science Technology, vol. 11, 2000, pp. 45–50 [2] D. Marioli, “Digital time-of-flight measurements for ultrasonic sensors”, IEEE Trans. Iinst.. & Meas., vol. 41, February 1992, pp. 93-94. [3] R. Queir′os, P. S. Gir?ao, A. Cruz Serra, “Cross-correlation and Sine-Fitting Techniques for High Resolution Ultrasonic Ranging”, IMTC 2006- Instrumentation and Measurement Technology Conference, Sorrento, Italy April 2006,pp.552-556. [4] G. Andria, F. Attivissimo, N. Giaquinto, “Digital signal processing techniques for accurate ultrasonic sensor measurement”, Elsevier Measurement. vol. 30, 2001, pp. 105–114 , Vol. 1. [5] F.E. Gueuning, M. Varlan, C.E. Eug`ene, P. Dupuis, “Accurate Distance Measurement by an Autonomous Ultrasonic System Combining Time-of- Flight and Phase-Shift Methods”, IEEE Trans. Iinst. & Meas., vol. 46, December 1997, pp. 1236–1240. [6] M. Parrila, J.J. Anaya, C. Fritsch, “Digital signal processing techniques for high accuracy ultrasonic range measurements”, IEEE Trans. Iinst. & Meas., vol. 4, August 1991, pp. 759-763.
三、源程序 - #include<reg52.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
-
- sbit key1=P2^0;
- sbit key2=P2^1;
- sbit key3=P2^2;
- sbit key4=P2^3;
-
- sbit M1=P1^0;
- sbit M2=P1^1;
- sbit LED1=P1^2;
- sbit LED2=P1^3;
-
- sbit RS=P2^4;
- sbit RW=P2^5;
- sbit EN=P2^6;
-
- sbit Trig=P1^4;// 定義HC-SR04發(fā)送端
- sbit Echo=P1^5;//定義HC-SR04接收端
-
- bit flag=1,bflag=1;//succeed_flag超聲波測(cè)距成功標(biāo)志 flag設(shè)置距離加1或加0.1標(biāo)志
- float distance,DH=99.55,DL=80.55,b;//b加的值大小
-
- uint s,time,disflag;
- uint ff=0,distance_xs,DH_xs,DL_xs;
- uchar cache[4]={0,0,0,0};
-
- void delay(uint x)
- {
- uint i,j;
- for(j=0;j<x;j++)
- for(i=0;i<123;i++);
- }
- void delay_20us()
- {
- uchar a ;
- for(a=0;a<100;a++);
- }
-
- void write_Com(uchar com)
- {
- RW=0;
- RS = 0;
- P0 = com;
- EN = 1;
- delay(2);
- EN = 0;
- }
- void write_Data(uchar date)
- {
- RS = 1;
- P0 = date;
- EN = 1;
- delay(2);
- EN = 0;
- }
-
- void LCD_Init(void)
- {
- write_Com(0x38);
- write_Com(0x0c);
- write_Com(0x06);
- write_Com(0x01);
- }
- void show_char(uchar x,uchar y,char a)
- {
- if(y%2==1)
- write_Com(0x80+x-1);
- else
- write_Com(0xc0+x-1);
-
- write_Data(a);
- }
- int xs(float xs)
- {
- float a;
- a=xs-(int)xs;
- xs=(int)10*a;
- return xs;
- }
-
- void display(uchar x,uchar y,uchar sz,uint num);//x:位置 y:排數(shù) sz:個(gè)數(shù) num:數(shù)值
- void display_Init()
- {
- show_char(1,1,'D');
- show_char(2,1,'I');
- show_char(3,1,'S');
- show_char(4,1,':');
- show_char(8,1,'.');
-
- show_char(1,2,'C');
- show_char(2,2,'O');
- show_char(3,2,'N');
- show_char(4,2,':');
-
-
- // show_char(10,1,'D');
- show_char(11,1,'H');
- show_char(12,1,':');
- show_char(15,1,'.');
-
- // show_char(10,2,'D');
- show_char(11,2,'L');
- show_char(12,2,':');
- show_char(15,2,'.');
-
- switch ( ff ) //判斷進(jìn)水放水情況
- {
- case 0:show_char(7,2,'U');;break;//無操作
- case 1:show_char(7,2,'H');;break;//放水
- case 2:show_char(7,2,'L');;break;//進(jìn)水
- }
- distance_xs=xs(distance);
- DH_xs=xs(DH);
- DL_xs=xs(DL);
- display(5,1,3,distance);
- display(9,1,1,distance_xs);
-
- display(13,1,2,DH);
- display(16,1,1,DH_xs);
-
- display(13,2,2,DL);
- display(16,2,1,DL_xs);
-
- }
- void display(uchar x,uchar y,uchar sz,uint num)//x:位置 y:第幾排 sz:位數(shù) num:值
- {
- uchar a[5]={0};
- uchar i=0;
- uint Temp=num;
- while(Temp)
- {
- a[i] = Temp%10;
- Temp = Temp/10;
- i++;
- }
-
- if(y%2==1)
- write_Com(0x80+x-1);
- else
- write_Com(0xc0+x-1);
-
- for(i=sz;i>0;i--)
- {
- write_Data(0x30+a[i-1]);
- }
-
- }
- //按鍵控制函數(shù)
- float set_distance(float set_dis)
- {
-
- if(!key3)
- {
- delay(10);
- if(!key3)
- {
- while(!key3);
- set_dis=set_dis+b;
- if(set_dis>=99)
- set_dis=99;
- }
- }
- if(!key4)
- { delay(10);
- if(!key4)
- {
- while(!key4);
- set_dis=set_dis-b;
- if(set_dis<=0)
- set_dis=0;
- }
- }
- if(!key1)
- { delay(10);
- if(!key1)
- {
- while(!key1);
- flag=~flag;
- }
- }
- if(!key2)
- { delay(10);
- if(!key2)
- {
- while(!key2);
- bflag=~bflag;
- }
- }
- return set_dis;
- }
-
- void CJ(void)
- {
- Trig=1; //啟動(dòng)一次檢測(cè)模塊
- delay_20us();
- Trig=0; //停止向檢測(cè)模塊Trig端發(fā)送高電平
- while(!Echo); //當(dāng)接收為零時(shí)等待
- TR0=1; //開啟計(jì)數(shù)
- while(Echo); //當(dāng)接收為1計(jì)數(shù)并等待
- TR0=0;
- time=TH0*256+TL0; //檢測(cè) 所需時(shí)間
- TH0=0;
- TL0=0;
- distance=145.05-time*0.172;// 計(jì)算距離,算出來的單位是mm
- // distance=(int)(distance*100)/100; //強(qiáng)制保留2位小數(shù)
- }
-
- void BJ()
- {
- if(flag)
- {
- DH=set_distance(DH);if(DH<DL)DL=DH;
- }
- else
- {
- DL=set_distance(DL);if(DL>DH)DH=DL;
- }
- if(bflag)
- {
- b=1.00;
- }
- else
- {
- b=0.10;
- }
- if(distance>DH)
- {
- LED1=1;
- LED2=0;
- M1=1;
- M2=0;
- ff=1;
- }
- else if(distance<DL)
- {
- LED2=1;
- LED1=0;
- M2=1;
- M1=0;
- ff=2;
- }
- else
- {
- M1=0;
- M2=0;
- LED1=0;
- LED2=0;
- ff=0;
- }
- }
- void init()
- {
- TMOD=0x01; //高T0工作方式為方式1,GATE=1
- TH0=0;
- TL0=0;
- ET0=1; //允許T0中斷
- EA=1; // 開啟總中斷
- M1=0;
- M2=0;
- LED1=0;
- LED2=0;
- LCD_Init();
- delay(5);
- display_Init();
- }
- void main()
- {
- uint w;
- init();
- while(1)
- {
- w++;
- if(w==5)
- …………限于本文篇幅 余下代碼請(qǐng)從51hei論壇下載附件…………
復(fù)制代碼
完整文檔下載 WORD格式 可編輯:
基于單片機(jī)的超聲波液位檢測(cè)系統(tǒng)設(shè)計(jì).doc
(4.15 MB, 下載次數(shù): 252)
2017-5-3 11:54 上傳
點(diǎn)擊文件名下載附件
sr-c04,1602 下載積分: 黑幣 -5
|