摘要:在日常生活和工業(yè)生產(chǎn)中,為了有效檢測(cè)水位,并提高水位控制[1]系統(tǒng)的可靠性和準(zhǔn)確性,本文設(shè)計(jì)了一種以單片機(jī)為核心的水位控制系統(tǒng)。該系統(tǒng)主要由水位檢測(cè)模塊、單片機(jī)控制模塊和執(zhí)行控制模塊組成。文章根據(jù)水位檢測(cè)控制的實(shí)際需求,對(duì)常用的水位檢測(cè)控制方法的對(duì)比分析和研究,介紹了水位控制系統(tǒng)總體方案的設(shè)計(jì),其中包括硬件和軟件兩部分,在硬件設(shè)計(jì)中重點(diǎn)闡述了電路圖設(shè)計(jì)。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);超聲波測(cè)距;水位監(jiān)測(cè)控制
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)22-0092-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)
0 引言
本課題主要研究基于單片機(jī)的水位控制系統(tǒng)。該系統(tǒng)以單片機(jī)STM32F103C8T6為核心,由硬件和軟件兩部分內(nèi)容構(gòu)成。其中,硬件部分主要包括信號(hào)發(fā)送和接收模塊、電源模塊、測(cè)量模塊和顯示模塊;軟件部分是在Keil4開發(fā)運(yùn)行環(huán)境下使用高級(jí)匯編C++語(yǔ)言編程實(shí)現(xiàn),利用超聲波測(cè)距技術(shù)來(lái)測(cè)量水位高度。該系統(tǒng)適用于水位控制、防洪、自動(dòng)灌溉等多種場(chǎng)景。通過(guò)本研究,能夠有效地監(jiān)測(cè)水位高度,提高水位控制與測(cè)量的精度和可靠性,為人們的生活與農(nóng)業(yè)生產(chǎn)帶來(lái)便利。此外,基于單片機(jī)的水位控制系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、功能齊全、成本、操作方便等優(yōu)點(diǎn),使得該系統(tǒng)的應(yīng)用范圍更廣泛,能夠更好地滿足社會(huì)需求。
1 系統(tǒng)總體方案設(shè)計(jì)
基于單片機(jī)的水位控制系統(tǒng),由多個(gè)部件組成,其中傳感器部件實(shí)時(shí)采集水位的信號(hào),并將信號(hào)傳輸給單片機(jī)進(jìn)行存貯、分析、運(yùn)算和處理。
除超聲波傳感器元件外,系統(tǒng)還包括單片機(jī)、繼電器、水泵、顯示屏等部件。單片機(jī)負(fù)責(zé)接收和處理傳感器測(cè)得的水位和溫度數(shù)據(jù)。水泵控制水的進(jìn)出,以維持水池水位穩(wěn)定。顯示屏實(shí)時(shí)顯示水位高度和系統(tǒng)狀態(tài)。系統(tǒng)總體方案框架圖如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
這個(gè)基于超聲波技術(shù)的測(cè)距系統(tǒng)主要包括發(fā)射、接收、單片機(jī)接口和顯示報(bào)警等相關(guān)電路。主要設(shè)計(jì)圍繞單片機(jī)功能實(shí)現(xiàn),強(qiáng)調(diào)超聲波傳遞和接收方面的優(yōu)化,以達(dá)到更高的測(cè)量準(zhǔn)確度和分辨率。對(duì)于超聲波發(fā)射器UCM40T和接收器UCM40R所接受到的超聲回波電壓值只有幾十毫伏,同時(shí)伴隨著強(qiáng)烈的噪聲信號(hào)。因此,在放大電路的設(shè)計(jì)中,需要同時(shí)處理信號(hào)和噪聲,并使信號(hào)得到合適的放大。為此,決定使用CX20106A集成電路來(lái)實(shí)現(xiàn)這兩個(gè)任務(wù),并將其傳遞到MCU中通過(guò)P2.7端口進(jìn)行處理。隨后,使用動(dòng)態(tài)掃描方式將處理后的數(shù)據(jù)展示,并利用單片機(jī)編程將時(shí)間數(shù)據(jù)轉(zhuǎn)化為相應(yīng)的距離信息,并在OLED顯示器上展示。
2.1 最小系統(tǒng)
基于STM32F103C8T6單片機(jī)的相關(guān)電路如下介紹。單片機(jī)晶振電路如圖2所示。
單片機(jī)RTC晶振電路如圖3所示。
這是表示復(fù)位的輸出,一旦晶體振蕩器開始運(yùn)轉(zhuǎn),RST引腳將連續(xù)產(chǎn)生兩個(gè)機(jī)械循環(huán)的波形,并使用其高電平執(zhí)行對(duì)微處理器的重置。當(dāng)看門狗定時(shí)器被關(guān)閉后,RST的管腳將被調(diào)到高水平,具體細(xì)節(jié)可以在圖4中看到。
從圖4 可以看出,當(dāng)RST管腳被按下時(shí),它通過(guò)電阻器R24與系統(tǒng)+5V電源相連,只要這個(gè)時(shí)間保持在至少2個(gè)機(jī)械周期,單片機(jī)就會(huì)完成重置操作。
2.2 超聲波水位傳感器[3]電路
本課題選用超聲波傳感器HC-SR04,經(jīng)發(fā)射端發(fā)出的超聲波波長(zhǎng)為6毫米左右,頻率為40千赫茲。這個(gè)信號(hào)會(huì)被液面反射,然后被接收器接受。其在收到信號(hào)時(shí),會(huì)發(fā)出毫伏量級(jí)的弱電壓訊號(hào)。超聲波傳感器模塊的電路如圖5所示。
超聲波傳感器一般由電聲換能器、接收器和控制電路組成。電聲換能器將電能轉(zhuǎn)換成聲能,發(fā)射超聲波到液面,接收器接收反射回來(lái)的聲波并轉(zhuǎn)換成電信號(hào),送至控制電路計(jì)算和處理。
2.3 OLED顯示電路
水位高度等有關(guān)的定制文字以點(diǎn)陣方式儲(chǔ)存于OLED熒光屏的隨機(jī)存取存儲(chǔ)器內(nèi),即可完成定制文字的顯示。其中,定制文字的點(diǎn)陣信息必須轉(zhuǎn)換成二元信息,然后以O(shè)LED顯示屏尋址的形式存入內(nèi)存,最后再根據(jù)一一對(duì)應(yīng)的指示,在畫面上顯示出定制的文字。OLED顯示電路如圖6所示。
2.4 蜂鳴器
在本課題中需要使用蜂鳴器,以實(shí)現(xiàn)對(duì)P1.2相關(guān)頻率信號(hào)的推導(dǎo)。此舉可達(dá)到一定的放大效果,提高信號(hào)傳輸?shù)男?。注意連接時(shí)須謹(jǐn)慎,確保連接正確無(wú)誤。具體細(xì)節(jié)可以在圖7中看到。
2.5 電源電路
為了確保水位控制系統(tǒng)[4]在供電方面的穩(wěn)定性,本課題設(shè)計(jì)了USB供電和電源電路。
1) USB供電。整個(gè)系統(tǒng)的電源輸入采用USB接口。由于USB接口提供的電壓是5V,我們需要將這個(gè)電壓轉(zhuǎn)換為系統(tǒng)所需的工作電壓。對(duì)于較小的系統(tǒng),可以使用超小型線性穩(wěn)壓器或切換穩(wěn)壓器將5V直接轉(zhuǎn)換為所需工作電壓。
2) 電源電路。選擇使用電源穩(wěn)壓芯片來(lái)保證穩(wěn)定的電源,并與USB供電形成雙重電源保護(hù)。在電源穩(wěn)壓芯片的電路中,我們還加入了輸入和輸出的濾波電容,濾除高頻噪聲和干擾信號(hào),降低對(duì)系統(tǒng)穩(wěn)定性的影響。其電路圖如8所示。
2.6 按鍵電路
鍵盤在單片機(jī)的應(yīng)用和管理中是必不缺少的部件,鍵盤中的按鍵相當(dāng)于一個(gè)獨(dú)立的按鈕,與單片機(jī)的輸入輸出接口對(duì)應(yīng)連接,通過(guò)程序掃描的查詢方式,完成單片機(jī)系統(tǒng)中信號(hào)交互任務(wù)。在程序掃描的方式下,通過(guò)輸入輸出端口讀取鍵盤按下與松開的狀態(tài),在按鍵被按下時(shí)輸入輸出端與地面間的短接就會(huì)使得輸入輸出端變?yōu)榈碗妷?,相?yīng)的接口就會(huì)置“0”,松開時(shí),在MCU中有一個(gè)上拉電阻器,使輸入輸出處于一個(gè)高電壓的狀態(tài),相應(yīng)的接口就會(huì)置“1”這樣根據(jù)電壓高低狀態(tài)就能判斷是否按下按鍵。硬件電路如圖9所示。
2.7 水泵控制電路
在水泵控制電路中,我們使用單刀雙擲型(SPDT) 繼電器[7],利用繼電器的COM引腳為公共端,NO和NC兩個(gè)引腳來(lái)控制水泵的啟停。具體實(shí)現(xiàn)方式是,當(dāng)水箱內(nèi)的水位低于最低水位線時(shí),單片機(jī)控制繼電器[2]進(jìn)行觸點(diǎn)切換,接通NO和COM兩個(gè)引腳,使得水泵啟動(dòng)開始進(jìn)水;當(dāng)水箱內(nèi)的水位高于最高水位線時(shí),單片機(jī)控制繼電器進(jìn)行一次觸點(diǎn)切換,接通NO和COM兩個(gè)引腳,使得水泵停止工作;這樣就實(shí)現(xiàn)了一種簡(jiǎn)單、可靠的水泵控制電路。
除了繼電器,水泵控制[8]電路中還需要加入一些保護(hù)電路來(lái)防止水泵短路、過(guò)載等情況對(duì)單片機(jī)和繼電器造成損害。具體保護(hù)電路的設(shè)計(jì)可以根據(jù)實(shí)際情況進(jìn)行選擇。其電路如圖10所示。
2.8 PCB板
該系統(tǒng)的硬件部分采用了PCB技術(shù),即將電路圖設(shè)計(jì)成實(shí)體化的電路板。PCB的設(shè)計(jì)包括電路原理圖轉(zhuǎn)換、布線、走線、光繪、鉆孔和貼裝等步驟。在硬件設(shè)計(jì)方面,采用了雙層PCB的設(shè)計(jì)形式,其中一層用于電源線和信號(hào)線的布線,另一層則用于對(duì)細(xì)節(jié)部分進(jìn)行布線和走線,以確保電路的精細(xì)和穩(wěn)定性。通過(guò)PCB的制作,可以將電路板制作成固定的形式,提高系統(tǒng)的整體可靠性和穩(wěn)定性。
3 系統(tǒng)軟件設(shè)計(jì)
本次軟件設(shè)計(jì)是在Keil 4開發(fā)環(huán)境下利用高級(jí)編程語(yǔ)言C++進(jìn)行程序編寫,在硬件設(shè)計(jì)的基礎(chǔ)上對(duì)系統(tǒng)程序控制和系統(tǒng)管理。主要內(nèi)容包括如下:
系統(tǒng)程序結(jié)構(gòu)如下:
1) 引入頭文件:包含所需的庫(kù)文件和宏定義。
2) 全局變量定義:定義需要用到的全局變量,包括超聲波傳感器數(shù)據(jù)、參考水位、當(dāng)前水位、泵狀態(tài)、OLED顯示屏對(duì)象等。
3) 初始化函數(shù):對(duì)各個(gè)模塊進(jìn)行初始化,包括超聲波傳感器、OLED顯示屏、繼電器以及定時(shí)器等。
4) 主函數(shù):程序的入口,包括以下5種功能:
a. 超聲波傳感器數(shù)據(jù)讀?。和ㄟ^(guò)超聲波傳感器獲取當(dāng)前水位數(shù)據(jù);該系統(tǒng)最小可以是112毫米左右的測(cè)量范圍。
b. 水位判斷:根據(jù)當(dāng)前水位和參考水位,判斷是否需要啟動(dòng)或關(guān)閉水泵;
c. OLED顯示屏刷新:根據(jù)當(dāng)前水位和泵狀態(tài),實(shí)時(shí)更新OLED顯示屏的內(nèi)容;
d. 繼電器控制水泵:根據(jù)水泵狀態(tài)控制繼電器的開關(guān);
e. 定時(shí)器中斷:設(shè)置定時(shí)器,定時(shí)讀取當(dāng)前水位并更新系統(tǒng)狀態(tài);
5) 子函數(shù):包括水泵啟動(dòng)和關(guān)閉、OLED顯示屏更新、定時(shí)器中斷函數(shù)等,用于輔助實(shí)現(xiàn)系統(tǒng)功能。
綜上所述,該水位控制系統(tǒng)基于STM32F103C8T6單片機(jī),通過(guò)超聲波傳感器測(cè)量水位,利用OLED顯示屏實(shí)時(shí)顯示水位狀態(tài),根據(jù)參考水位判斷是否需要啟動(dòng)或關(guān)閉水泵,借助繼電器實(shí)現(xiàn)水泵的開關(guān)控制,同時(shí)通過(guò)定時(shí)器定時(shí)更新系統(tǒng)狀態(tài),實(shí)現(xiàn)全自動(dòng)[6]的水位控制功能。本系統(tǒng)的流程控制嚴(yán)密,功能齊全,可以有效地保障水位控制的穩(wěn)定性和安全性。系統(tǒng)的主流程如圖11所示。
4 結(jié)束語(yǔ)
本文旨在探討基于單片機(jī)的水位控制系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)。選用了STM32F103C8T6作為控制中心,利用超聲波水位傳感器實(shí)時(shí)監(jiān)測(cè)水位[5]并根據(jù)預(yù)設(shè)的水位閾值控制水泵的開關(guān)。同時(shí),該系統(tǒng)還加入了OLED顯示屏用于展示實(shí)時(shí)水位信息,蜂鳴器和繼電器用于實(shí)現(xiàn)異常報(bào)警和電路保護(hù)等功能。該系統(tǒng)經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,能夠準(zhǔn)確、穩(wěn)定地控制水位,對(duì)于異常情況也可以及時(shí)響應(yīng),具有很好的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 李春秀,孫書芹.基于單片機(jī)的水位控制技術(shù)在水處理中的應(yīng)用[J].農(nóng)村自用水電,2020(2):46-48.
[2] 孔祥恒.單片機(jī)控制的自動(dòng)供水系統(tǒng)設(shè)計(jì)[J].數(shù)碼設(shè)計(jì),2019(12):198.
[3] 杜凡,周華.基于單片機(jī)的水位傳感器應(yīng)用研究[J].電子測(cè)量與儀器,2018(1):50-52.
[4] 黨強(qiáng).基于單片機(jī)的煤礦井下水位測(cè)控系統(tǒng)[J].百科論壇電子雜志,2021(1):2189.
[5] 龍文峰,袁夢(mèng)鑫.一種基于單片機(jī)的水位監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].探索科學(xué),2021(2):333-334.
[6] 朱強(qiáng)軍,李金帥.基于Proteus水位自動(dòng)控制系統(tǒng)的設(shè)計(jì)[J].電子制作,2020(2):72-73.
[7] 唐彬夏,許建明.基于單片機(jī)的水塔水位控制系統(tǒng)設(shè)計(jì)[J].電子制作,2013(1):59.
[9] 朱昌富.基于單片機(jī)的水位監(jiān)控系統(tǒng)[J].寧德師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,24(2):169-172.
【通聯(lián)編輯:梁書】