劉萌雅,張麗艷,徐銘峰,費繼友
(大連交通大學(xué) 電氣信息學(xué)院,遼寧 大連 116028)
液位監(jiān)控在工業(yè)生產(chǎn)和人們生活中有很多應(yīng)用.近年來采用的聲、光、射線的監(jiān)控方法,如雷達液位監(jiān)控[1]、超聲波液位監(jiān)控[2]、激光液位監(jiān)控[3]等許多工作仍處于實驗室的研究階段,即便有適用的系統(tǒng)問世,成本也是比較高的,且維修起來很麻煩.針對現(xiàn)階段這種狀況,本文給出了一種以STC89C52為處理器的系統(tǒng),該系統(tǒng)的電路組成比較簡單,調(diào)試起來也很方便,能較好的實現(xiàn)液位監(jiān)控.本文非接觸式的測量方式避免了與液體的直接接觸,使得液位測量不會受到酸、堿、水垢等的影響.相比接觸式的測量方式,該系統(tǒng)在使用時長和安裝上也會有明顯的優(yōu)勢,一經(jīng)安裝該系統(tǒng)便可長期穩(wěn)定地運行在無人監(jiān)控的狀態(tài)下.
本系統(tǒng)硬件[4-7]由電源電路、單片機最小系統(tǒng)、超聲波測距模塊、繼電器控制水泵注水/排水電路、顯示電路、報警電路還有蓄水容器組成,其硬件功能框圖如圖1所示.系統(tǒng)工作原理如下:當(dāng)液位處于低位時,處理器經(jīng)過分析液位傳感器傳來的信息,驅(qū)動蜂鳴器報警,同時也輸出一個低電平信號使2路繼電器的左邊一路吸合,水泵1開始往容器內(nèi)注入液體;當(dāng)液位處于高位的時候,處理器經(jīng)過分析液位傳感器傳來的信息,驅(qū)動蜂鳴器報警,同時也輸出一個低電平信號使2路繼電器的右邊一路吸合,水泵2開始抽出容器內(nèi)的液體;隨著液位的變化,當(dāng)?shù)竭_設(shè)定液位時,送入處理器液位傳感器的接口為高電平,繼電器釋放,水泵就會停止工作.另外,當(dāng)超聲波測距模塊檢測出的液位高度正好等于設(shè)定值時,系統(tǒng)保持靜態(tài)無反應(yīng).整個監(jiān)控過程,液位的高度都會通過LCD1602顯示出來.對于液位的調(diào)整,本系統(tǒng)工作電壓較低,再綜合考慮成本及可操作性,選用了齒輪泵來實現(xiàn).下面給出部分硬件電路的設(shè)計介紹.

圖1 硬件功能框圖
當(dāng)處理器把一個周期大于10 μs的脈沖信號給超聲波測距模塊,模塊的內(nèi)部就會發(fā)射出8個40 kHz的周期性的電平來檢測回波,如果檢測到回波信號就立刻輸出一個回響信號.所以測量的距離S由式(1)計算得出.

式中:S表示測量距離;t表示發(fā)射信號與收到的回響信號的時間差;V表示聲速.
繼電器是一種大電流被小電流控制的自動開關(guān)元件.設(shè)計中使用如圖2所示的方法連接繼電器和電機(水泵內(nèi)的電機),能夠?qū)崿F(xiàn)硬件互鎖,防止兩個電機同時工作.具體過程為:給1號電機控制信號時,1號電機啟動;給2號電機控制信號時,2號電機啟動,如出現(xiàn)程序故障導(dǎo)致兩電機都得到啟動信號,兩路繼電器都發(fā)生動作,此時兩個電機均沒有被接通,即不會出現(xiàn)同時工作的故障.

圖2 繼電器和電機的連接電路

圖3 蜂鳴器的驅(qū)動電路圖
本次設(shè)計選用有源蜂鳴器,并采用低電平有效的輸出方式.單片機I/O引腳輸出的電流比較小,為了能夠驅(qū)動蜂鳴器,就需增加一個來放大電流的電路.圖3為蜂鳴器的驅(qū)動電路.
系統(tǒng)主程序流程圖[8-12]如圖4所示.其工作過程如下:首先完成系統(tǒng)的初始化,接下來控制超聲波模塊重復(fù)的發(fā)射信號,每次發(fā)射周期結(jié)束,再判斷信號發(fā)出后等待的時間里回波是否到達,也就是說判斷是否有中斷(見下文2.1節(jié)的回波檢測部分),體現(xiàn)在主程序流程圖中是每一次的判斷過程.之后是計算距離值并將其顯示是由中斷子程序?qū)崿F(xiàn)的,即先將超聲波模塊發(fā)射程序初始化,然后等待中斷響應(yīng)(見下文2.2節(jié)的中斷服務(wù)程序部分),體現(xiàn)在主程序流程圖中是每一次的判斷之后的執(zhí)行,待有中斷響應(yīng)之后,經(jīng)函數(shù)計算將原始時間數(shù)據(jù)轉(zhuǎn)換成十進制液位數(shù)據(jù)顯示輸出.

圖4 主程序流程圖
STC89C52單片機通過 P3.3口(連接 HCSR04的觸發(fā)控制信號輸入端Tx),發(fā)送出一連串的脈沖,以此來控制時間,隨后啟動定時器T0,當(dāng)檢測到回波時,通過P3.2口(連接HC-SR04的回響信號輸出端Rx)產(chǎn)生外部中斷信號,T0停止計時,記錄下接收到回波所耗的時間.
系統(tǒng)發(fā)射出40 kHz的脈沖信號后,T0開始計時,當(dāng)遇到液面后返回回波信號,經(jīng)回波檢測電路產(chǎn)生外部中斷信號傳至單片機,即激發(fā)外部中斷0,開始響應(yīng)中斷服務(wù)程序,T0停止計數(shù).而中斷服務(wù)程序就是響應(yīng)外部中斷.在中斷服務(wù)程序中,進入中斷服務(wù)程序的計數(shù)值c被讀出來,保存到隨機存儲器中,再由式(2)算出距離distance的值:

首先,系統(tǒng)進行硬件調(diào)試.該調(diào)試過程相對簡單,主要需要做的是檢查開發(fā)板與模塊連線是否連接正常,然后對超聲波測距模塊、LCD1602液晶屏、繼電器、蜂鳴器、水泵等分別進行測試,直接將主控單片機 STC89C52、LCD1602液晶屏、HCSR04超聲波測距模塊、繼電器、蜂鳴器、水泵等連接構(gòu)成自動液位監(jiān)控系統(tǒng),編寫適當(dāng)程序進行液位監(jiān)控,測試出系統(tǒng)的絕對誤差.
本次的設(shè)計完成了預(yù)定的基本性能要求,實現(xiàn)了自動液位監(jiān)控的功能,具體結(jié)果如下:①能實時輸出當(dāng)前的水位情況;②能根據(jù)要求動態(tài)的調(diào)整水位到指定數(shù)值;③在水平面基本靜止的條件下,動態(tài)調(diào)整水位到規(guī)定數(shù)值,誤差小于3 cm;④系統(tǒng)應(yīng)具備電傳功能,實現(xiàn)液位數(shù)據(jù)向PC的傳輸;⑤功耗較低.
此外,本文給出了本設(shè)計的正程—回程實測圖,其理論液位顯示數(shù)據(jù)與實際液位的數(shù)據(jù)曲線為階梯狀,如圖5所示.

圖5 正程—回程實測圖
由圖5實驗數(shù)據(jù)可知,該系統(tǒng)的平均測量誤差小于0.3 cm,液位顯示分辨率為1 cm.由于實際情況下,液面存在一定的波動或震動,尤其是在注水或排水的情況下,液面不穩(wěn)定程度加劇,如果顯示分辨率太高,會造成顯示數(shù)據(jù)的頻繁變動,無法順利的讀取數(shù)據(jù).因此,在設(shè)計時應(yīng)該選取合適的系統(tǒng)分辨率,經(jīng)調(diào)試本設(shè)計將系統(tǒng)分辨率設(shè)為1 cm.實驗結(jié)果表明了本設(shè)計合理可靠性.
本次設(shè)計的自動液位監(jiān)控系統(tǒng)主要目的是使液位始終保持在一定范圍,避免液位過高或過低現(xiàn)象的發(fā)生.本設(shè)計采用STC89C52單片機為系統(tǒng)控制,應(yīng)用超聲波測距原理,能實現(xiàn)對范圍在0~14 cm內(nèi)的液位的有效測量,其絕對誤差小于3 cm,重復(fù)性也好,能夠確保水位在允許的范圍內(nèi)浮動,同時還兼有了高低液位報警功能.可見基于STC89C52單片機設(shè)計的超聲波液位監(jiān)控系統(tǒng)的硬件部分簡單、可靠性高、測量誤差范圍小.
[1]范飛飛.基于雷達液位計的水文信息實時監(jiān)測系統(tǒng)的研究[D].湖北:湖北工業(yè)大學(xué),2013.
[2]盧偉.高精度超聲波液位測量系統(tǒng)的設(shè)計與實現(xiàn)[D].河北:河北工業(yè)大學(xué),2012.
[3]閆達海,胥光申.面曝光快速成形激光液位檢測系統(tǒng)的研究[J].天津工業(yè)大學(xué)學(xué)報,2013(1):81-85.
[4]普仕凡,張麗艷,李桂林,等.基于89C52單片機的智能溫控儀設(shè)計[J].大連交通大學(xué)學(xué)報,2008,29(3):91-94.
[5]劉振超,張麗艷,普仕凡.基于W78E516控制的觸摸液晶顯示屏AG320240A4STCW-T51的應(yīng)用[J].現(xiàn)代顯示,2009(1):44-47.
[6]胡汪洋,冀恩祥,費繼友.基于單片機控制電子胸卡的設(shè)計[J].儀表技術(shù),2010(5):23-25.
[7]費繼友,周茉.基于ARM+FPGA的嵌入式數(shù)控裝置設(shè)計[J].制造技術(shù)與機床,2010(12):70-73.
[8]郭天祥.51單片機C語言教程—入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.
[9]劉昌華,易逵.8051單片機的C語言應(yīng)用程序設(shè)計與實踐[M].北京:國防工業(yè)出版社,2007.
[10]劉坤,宋戈,趙紅波,等.51單片機C語言應(yīng)用開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2008.
[11]張忠梅.單片機的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2007.
[12]王昌明,孔德仁,何云峰.傳感與測試技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.