張春嶺 梅彥平 王靜
摘? ?要: 針對(duì)原有超聲波測(cè)距儀存在的精度不高、成本較高等問題,設(shè)計(jì)了以STC89C52單片機(jī)為核心控制單元,利用HC-SR04超聲波傳感器模塊進(jìn)行超聲波檢測(cè),同時(shí)引入溫度傳感器對(duì)環(huán)境溫度進(jìn)行補(bǔ)償,并加入平均值濾波算法對(duì)測(cè)量過程中的隨機(jī)誤差進(jìn)行修正的測(cè)距儀。對(duì)比實(shí)驗(yàn)表明,融合了溫度補(bǔ)償和平均值濾波算法的超聲波測(cè)距儀在測(cè)量精度方面有很大改善,絕對(duì)誤差控制小于1 mm,平均相對(duì)百分誤差小于0.2%,儀器兼具結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定、成本低等優(yōu)勢(shì)。
關(guān)鍵詞: 超聲波測(cè)距;傳感器;STC89C52單片機(jī);溫度補(bǔ)償;平均值濾波
中圖分類號(hào):TP368.2? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):2095-8412 (2020) 01-033-05
工業(yè)技術(shù)創(chuàng)新 URL: http: //www.china-iti.com? ? DOI: 10.14103/j.issn.2095-8412.2020.01.007
引言
距離是控制系統(tǒng)中經(jīng)常使用的重要參數(shù),如何獲得準(zhǔn)確的距離成為相關(guān)領(lǐng)域研究的熱點(diǎn)問題。目前常用的測(cè)距方法有:激光測(cè)距、毫米波測(cè)距、紅外測(cè)距和超聲波測(cè)距等[1]。
超聲波測(cè)距是一種非接觸式測(cè)距方法。與其他方法相比,超聲波測(cè)距不受光線、被測(cè)對(duì)象顏色等因素的影響,對(duì)被測(cè)物體處于黑暗、電磁干擾等惡劣環(huán)境的情況也有一定的適應(yīng)能力[2]。此外,超聲波具有指向性強(qiáng)、方向性好、傳播能量大、傳播距離較遠(yuǎn)等優(yōu)勢(shì)。目前,超聲波測(cè)距技術(shù)已在工業(yè)控制、能源勘探、氣象測(cè)量、水利監(jiān)測(cè)等領(lǐng)域得到了廣泛應(yīng)用[3]。
當(dāng)前一般使用集成芯片實(shí)現(xiàn)測(cè)距儀設(shè)計(jì),而這一方式存在成本較高、功能單一等問題[4]。本文設(shè)計(jì)了一種基于STC89C52單片機(jī)的超聲波測(cè)距儀,具有智能處理功能,可實(shí)現(xiàn)測(cè)量距離實(shí)時(shí)顯示、報(bào)警閾值設(shè)置等功能,且操作簡(jiǎn)單、成本低、精度高,具有一定推廣應(yīng)用價(jià)值。
1? 總體方案
設(shè)計(jì)指標(biāo):準(zhǔn)確測(cè)量并顯示被測(cè)對(duì)象與測(cè)距儀的距離,當(dāng)被測(cè)距離小于系統(tǒng)預(yù)設(shè)值(安全距離)時(shí),蜂鳴器報(bào)警。
為實(shí)現(xiàn)上述指標(biāo),系統(tǒng)結(jié)構(gòu)主要由三大部分構(gòu)成:控制部分、檢測(cè)部分和人機(jī)交互部分,如圖1所示。
控制部分采用STC89C52單片機(jī);檢測(cè)部分采用HC-SR04超聲波傳感器模塊和DS18B20溫度傳感器模塊;人機(jī)交互部分包括顯示模塊、報(bào)警模塊及按鍵,其中顯示模塊采用LED顯示器,報(bào)警模塊采用蜂鳴器,按鍵采用獨(dú)立按鍵。
2? 檢測(cè)原理
2.1? 超聲波測(cè)距原理
采用時(shí)差法測(cè)距方法,測(cè)距原理如圖2所示。
將超聲波傳感器發(fā)射端對(duì)著被測(cè)對(duì)象進(jìn)行發(fā)射,超聲波以空氣為媒介進(jìn)行傳播,遇到障礙物后反射回超聲波傳感器的接收端,根據(jù)發(fā)射和接收的時(shí)間差就可以計(jì)算超聲波的傳播距離。計(jì)算公式如下:
(1)
(2)
由式(1)、式(2)可得
(3)
其中,為被測(cè)對(duì)象到傳感器接收端/發(fā)射端的距離,為被測(cè)對(duì)象到傳感器中心的距離,為超聲波發(fā)射時(shí)刻,為超聲波接收時(shí)刻,為超聲波傳播速度,為傳感器發(fā)射端和接收端到傳感器的中心距離。
由式(3)可知,傳感器與被測(cè)物體的直線距離與、、有關(guān),為固定值,因此可通過提高、、的測(cè)量精度,來(lái)提高的精度。
2.2? 溫度補(bǔ)償
超聲波作為聲波的一種,在空氣中傳播時(shí)的傳播速度受環(huán)境溫度的影響較大。為了提高測(cè)量精度,計(jì)算時(shí)必須根據(jù)環(huán)境因素對(duì)聲波速度進(jìn)行修正。
系統(tǒng)中設(shè)置了溫度采集電路,利用DS18B20溫度傳感器可以直接獲得現(xiàn)場(chǎng)溫度。工業(yè)測(cè)量中,通常用式(4)進(jìn)行計(jì)算[5]:
(4)
其中,為現(xiàn)場(chǎng)溫度,為溫度補(bǔ)償后的超聲波傳播速度。
3? 硬件設(shè)計(jì)
3.1? 控制部分
系統(tǒng)結(jié)構(gòu)中控制部分的主控芯片采用STC89C52單片機(jī),它是宏晶科技生產(chǎn)的一種CMOS 8位微控制器,指令代碼完全兼容傳統(tǒng)8051單片機(jī),具有高性能、低功耗、超強(qiáng)抗干擾、使用方便簡(jiǎn)單的特點(diǎn),是新一代8051單片機(jī)。其主頻可達(dá)35 MHz,定時(shí)器精度可達(dá)0.028 μs,由定時(shí)時(shí)間、帶來(lái)的誤差為0.009 7 mm,誤差值可忽略不計(jì)。
3.2? 檢測(cè)部分
3.2.1? 超聲波測(cè)距
采用HC-SR04超聲波傳感器模塊作為超聲波檢測(cè)模塊,此模塊性能穩(wěn)定,測(cè)量范圍為20~4 000 mm,測(cè)量精度高,盲區(qū)小。該模塊具有4個(gè)引腳——脈沖觸發(fā)引腳Trig、回波引腳Echo、VCC和GND。測(cè)距時(shí)Trig引腳接收到單片機(jī)發(fā)送的高電平信號(hào)(持續(xù)時(shí)間>10 μs);發(fā)射端發(fā)射8個(gè)頻率為40 kHz的方波,同時(shí)Echo引腳電平將由低變高;接收端收到回波信號(hào)后,Echo電平將自動(dòng)由高變低。高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。該高電平時(shí)間由STC89C52單片機(jī)測(cè)定。
該模塊發(fā)射電路如圖3所示,其基本組成為EM78P153、發(fā)射換能器T40和MAX232。單片機(jī)給Trig引腳發(fā)送高電平(持續(xù)時(shí)間>10 μs);經(jīng)EM78P153發(fā)送一段頻率為40 kHz的方波;通過MAX232電平轉(zhuǎn)換,提高發(fā)射功率;依靠換能器T40,將電脈沖信號(hào)轉(zhuǎn)換為超聲波發(fā)射。接收電路如圖4所示,其基本組成為TL074運(yùn)放和接收換能器R40。接收換能器R40接收回波,將超聲波轉(zhuǎn)換為電信號(hào),經(jīng)TL074運(yùn)放送至單片機(jī)。
3.2.2? 溫度檢測(cè)
為了對(duì)超聲波傳播速度進(jìn)行溫度補(bǔ)償,系統(tǒng)結(jié)構(gòu)中實(shí)時(shí)溫度檢測(cè)電路主要采用DS18B20溫度傳感器。
DS18B20是常用的數(shù)字溫度傳感器,輸出的是數(shù)字信號(hào),具有體積小、成本低、抗干擾能力強(qiáng)、精度高的特點(diǎn)。該模塊測(cè)溫范圍為-55~+125℃,在-10~+85℃范圍內(nèi)精度為±0.5℃。由式(4)可知,其帶來(lái)的誤差對(duì)聲速的影響為±0.303 5 m/s,可忽略不計(jì)。
3.3? 人機(jī)交互部分
該部分顯示模塊采用4位共陽(yáng)極數(shù)碼管。為節(jié)省IO口,采用動(dòng)態(tài)顯示方式,同時(shí)加入三極管對(duì)單片機(jī)IO口電流進(jìn)行放大,以驅(qū)動(dòng)數(shù)碼管。報(bào)警模塊采用壓電蜂鳴器,其體積小、成本低、可靠性好、靈敏度高,當(dāng)測(cè)量距離小于預(yù)設(shè)值時(shí)蜂鳴器響,進(jìn)行報(bào)警。預(yù)設(shè)值通過獨(dú)立按鍵“+”“-”鍵進(jìn)行設(shè)置[6]。
4? 軟件設(shè)計(jì)
軟件設(shè)計(jì)流程圖如圖5所示。系統(tǒng)上電后對(duì)傳感器等進(jìn)行初始化,超聲波發(fā)射,啟動(dòng)定時(shí)器,一旦檢測(cè)到聲波返回,則關(guān)閉定時(shí)器,調(diào)用測(cè)溫子程序和距離計(jì)算程序。計(jì)算結(jié)果與預(yù)設(shè)值進(jìn)行比較,若大于預(yù)設(shè)值則調(diào)用顯示子程序進(jìn)行顯示,若小于預(yù)設(shè)值則蜂鳴器報(bào)警。實(shí)際測(cè)量中加入了平均值濾波算法,該算法是將采集的m個(gè)數(shù)求平均值,以該平均值作為測(cè)量結(jié)果。該算法可以消除隨機(jī)誤差,提高測(cè)量精度。
5? 功能測(cè)試
利用本設(shè)計(jì)在同一環(huán)境下,分別對(duì)未加入平均值濾波算法和加入平均值濾波算法時(shí)進(jìn)行測(cè)距,測(cè)量數(shù)據(jù)如表1所示。為驗(yàn)證溫度補(bǔ)償?shù)淖饔?,在不同溫度下進(jìn)行測(cè)距,測(cè)量數(shù)據(jù)如表2所示。其中絕對(duì)誤差,平均相對(duì)百分誤差, (為實(shí)際距離,為測(cè)量值,為測(cè)量次數(shù),為測(cè)量總數(shù))。
由表1可以看出,經(jīng)過平均值濾波處理后的測(cè)量結(jié)果要明顯優(yōu)于未經(jīng)處理的測(cè)量結(jié)果,由此可知平均值濾波算法能夠有效提高測(cè)量精度。同時(shí),由表2可知,未加入溫度補(bǔ)償時(shí),隨著溫度變大,測(cè)量絕對(duì)誤差增大;而加入溫度補(bǔ)償后,溫度值改變幾乎不影響測(cè)量精度。表1和表2的數(shù)據(jù)顯示,無(wú)論單次測(cè)量絕對(duì)誤差,還是多次測(cè)量平均相對(duì)百分誤差,本文所設(shè)計(jì)的測(cè)距方法均具有明顯優(yōu)勢(shì),儀器整體實(shí)現(xiàn)的測(cè)距性能的絕對(duì)誤差控制小于1 mm,平均相對(duì)百分誤差控制小于0.2%。
6? 結(jié)論
本文設(shè)計(jì)了基于STC89C52單片機(jī)的超聲波測(cè)距儀,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、成本低、性能穩(wěn)定、操作方便、精度高。設(shè)計(jì)中引入溫度補(bǔ)償和平均值濾波算法,提高了測(cè)量精度,并將誤差限制在合理范圍內(nèi)。該系統(tǒng)適用于液位測(cè)量、障礙物的識(shí)別以及車輛自動(dòng)導(dǎo)航等領(lǐng)域,應(yīng)用前景良好。
參考文獻(xiàn)
[1] 張攀峰, 王玉萍, 張健, 等. 帶有溫度補(bǔ)償?shù)某暡y(cè)距儀的設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制, 2012, 20(6): 1717-1719.
[2] 趙珂. 時(shí)差法超聲測(cè)距儀的研制[J]. 國(guó)外電子元器件, 2005(1): 65-67.
[3] 朱旋. 超聲波測(cè)距儀的研究[J]. 工業(yè)儀表與自動(dòng)化裝置, 2009(1): 196-197.
[4] 譚洪濤, 張學(xué)平. 單片機(jī)設(shè)計(jì)測(cè)距儀原理及其簡(jiǎn)單應(yīng)用[J]. 現(xiàn)代電子技術(shù), 2004(18): 94-96.
[5] 安宗權(quán), 冷護(hù)基. 基于ATmega8單片機(jī)的超聲波測(cè)距儀[J]. 計(jì)算機(jī)測(cè)量與控制, 2005, 13(11): 1299-1300.
[6] 張毅剛, 劉旺, 鄧立寶. 單片機(jī)原理及接口技術(shù)[M]. 北京: 人民郵電出版社, 2016.
作者簡(jiǎn)介:
張春嶺(1987—),通信作者,女,河北人,工學(xué)碩士,助教。從事自動(dòng)化方面的研究與教學(xué)工作。
E-mail: chunling_zhang2013@163.com
(收稿日期:2020-02-17)
Design of Ultrasonic Range Measurement Instrument Based on STC89C52 MCU
ZHANG Chun-ling, MEI Yan-ping, WANG Jing
(City Institute, Dalian University of Technology, Dalian 116600, China)
Abstract: Focusing on the problems such as low precision and high cost existed in the original ultrasonic range measurement instrument, the STC89C52 MCU is taken as the core control unit, and the HC-SR04 ultrasonic sensor module is used to carry out the ultrasonic detection. Meanwhile, a temperature sensor is adopted to compensate the environmental temperature, and the average filtering algorithm is imported to correct the random error during the measurement process. The results of comparative experiments demonstrate that the ultrasonic range measurement instrument with temperature compensation and average filtering algorithm has an obvious improvement in the measurement accuracy. The absolute error is controlled by less than 1 mm, and the average relative error is controlled by less than 0.2%. The instrument also has the advantages such as simple structure, stable performance and low cost.
Key words: Ultrasonic Range Measurement; Sensor; STC89C52 MCU; Temperature Compensation; Average Filtering
工業(yè)技術(shù)創(chuàng)新2020年1期