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