蔡立娜
(云南能源職業(yè)技術(shù)學(xué)院,云南 曲靖 655000)
隨著科技的不斷發(fā)展進(jìn)步,單片機(jī)技術(shù)日益發(fā)展成熟,在實(shí)時(shí)檢測和自動(dòng)控制等領(lǐng)域得到了廣泛的應(yīng)用,為我們的生產(chǎn)和生活做出了極大的貢獻(xiàn),本文以STC89C52單片機(jī)為主控芯片[1-2],設(shè)計(jì)多功能液體容器,實(shí)踐檢測可以準(zhǔn)確識別出液體種類,測量出液體重量和液位高度,并輔助以語音播報(bào),為單片機(jī)在電子產(chǎn)品中的應(yīng)用奠定了基礎(chǔ)。
(1)能檢測液體液位、重量等參數(shù),可顯示檢測結(jié)果。
(2)裝載一定量(200-500mL)的不同液體進(jìn)行測量,要求液位測量絕對誤差的絕對值≤2mm;重量測量絕對誤差的絕對值≤1g;
(3)在(2)的測量基礎(chǔ)上,能夠區(qū)分不同濃度的鹽水。要求顯示第二次測量液體的名稱(根據(jù)兩次測量鹽水的濃度,相對顯示是濃鹽水或淡鹽水)。
(1)根據(jù)液體特征可分辨純凈水、鹽水、牛奶、白醋四種液體種類(限定采用電子測量技術(shù),傳感器與測量方法不限,可同時(shí)采用多種測量方法);
(2)根據(jù)液體特征可分辨出純凈水和白糖水的種類。
(1)STM32F407ZGT6。該芯片為32位MCU+FPU,210MIPS,高達(dá)1MB Flash/192+4KB RAM,USB OTG HS/FS,以太網(wǎng),17個(gè)TIM,3個(gè)ADC,15個(gè)通信接口,其適用于需要浮點(diǎn)運(yùn)算或DSP處理的應(yīng)用;
(2)STC89C52。是基于8051內(nèi)核的新一代增強(qiáng)型單片機(jī),指令代碼完全兼容傳統(tǒng)8051,速度快8-12倍,3個(gè)定時(shí)器,一個(gè)串口,8個(gè)中斷源,加密性好,抗干擾強(qiáng)。
系統(tǒng)主要對重量以及液位進(jìn)行數(shù)據(jù)采集,在簡單、快速開發(fā)的要求下,STC89C52的內(nèi)部資源完全能夠滿足本系統(tǒng)開發(fā)的需求,所以最終確定采用STC89C52為主控芯片[3-4]。
(1)諧振式液位傳感器。該傳感器為投入式傳感器,采用串口輸出深度值,兼容5V、3.3V控制系統(tǒng),同時(shí)自帶校準(zhǔn)數(shù)據(jù)存儲功能,存儲校準(zhǔn)數(shù)據(jù)值,掉電不丟失;
(2)超聲波傳感器。其為非接觸式測距,體積小,電路簡單,探測距離為0-450cm,探測精度高,穩(wěn)定性較強(qiáng)。
由于系統(tǒng)需要辨別不同的液體,而本設(shè)計(jì)方案主要根據(jù)密度值來區(qū)別不同的液體,所以液位的精確度對于本設(shè)計(jì)至關(guān)重要。由于諧振式液位傳感器針對不同的液體有不同的補(bǔ)償值,無法實(shí)現(xiàn)高精度。而超聲波傳感器不容易受到各種液體干擾,測試精度高,完全滿足該方案的測試精度。所以綜合比較,采用超聲波傳感器作為系統(tǒng)的液位傳感器[5-7]。
(1)WTN3語音芯片為單芯片,CMOS語音合成IC,40秒和80秒(6K采樣)。具有1個(gè)Input腳和2個(gè)I/O腳,一組PWM輸出,提供最大語音段數(shù)32段;
(2)WT588D提供了多種接口可以通過單片機(jī)來控制播放,語音內(nèi)容及接口方式是通過上位機(jī)軟件來下載和設(shè)置的。WT588D內(nèi)部有SPI-FLASH,SPI-FLASH的容量決定了可播放文件的長度,并且提供最大語音段數(shù)232段。
由于本設(shè)計(jì)需要對語音進(jìn)行編輯、合成和現(xiàn)場燒寫,而WT588D滿足這些要求,故采用WT588D為語音播放模塊。
提前算出超聲波模塊到盛水裝置地面的距離為H1,測量盛水后的距離為H2,H=H1-H2。通過兩次測量的值加權(quán)取值計(jì)算得到實(shí)際的水位值。
滿量程輸出電壓=激勵(lì)電壓*靈敏度,例如:供電電壓是5V乘以靈敏度=滿量程10 。相當(dāng)于有10Kg重力產(chǎn)生時(shí)候產(chǎn)生10 的電壓。
假設(shè)重力為XKg,測量出來的A D 值為y,1 0Kg傳感器輸出,發(fā)送給A D 模塊的電壓為XKg×8.6 m V/1 0Kg=0.8 6Xmv,經(jīng)過1 2 8 倍增益后為1 2 8×0.86X=11 0.0 8Xmv,轉(zhuǎn)換為2 4 b i t 數(shù)字信號為110.08A×224/4.3V=429496.7296X,所以y=429496.7296A/100=4294.967296X。因此得出X=y/4294.967296Kg≈y/4.30g,所以得出程序中計(jì)算公式重量=重量/4.30+0.05。
液體密度為?=m/H*S,其中容器底面積為S,液體質(zhì)量為m,液體高度為H。程序設(shè)計(jì)中根據(jù)液體的密度來判斷不同的液體溶液。
本設(shè)計(jì)采用STC公司的STC89C52單片機(jī)為主控芯片,重量數(shù)據(jù)采集部分由稱重傳感器、信號放大和A/D轉(zhuǎn)換部分組成,信號放大和A/D轉(zhuǎn)換部分主要由專用型高精度24位AD轉(zhuǎn)換芯片HX711實(shí)現(xiàn);超聲波傳感器輸出數(shù)據(jù)給單片機(jī)處理,語音播報(bào)模塊由WT588D芯片實(shí)現(xiàn),可完成語音播報(bào)開機(jī)功能介紹以及電子秤重量等內(nèi)容,人機(jī)交互界面為點(diǎn)陣式12864顯示屏,可直觀地顯示數(shù)據(jù)。系統(tǒng)總體框圖如圖1所示。各模塊電路如圖2所示。
圖1 系統(tǒng)總體框圖
圖2 各模塊電路設(shè)計(jì)圖
軟件部分主要實(shí)現(xiàn)數(shù)據(jù)的讀取和顯示。
(1)數(shù)據(jù)讀取功能:精確讀取重量、水位值;
(2)顯示部分:顯示系統(tǒng)名稱、重量值、水位值以及對應(yīng)的液體種類;
(3)語音播報(bào):播放設(shè)備功能及相關(guān)的重量值、水位值。
以需要實(shí)現(xiàn)的功能為出發(fā)點(diǎn),先分析及配置出實(shí)現(xiàn)功能所需使用的寄存器,完成系統(tǒng)功能初始化,然后進(jìn)去循環(huán)讀取,讀取數(shù)據(jù)采用多次取值,去掉最大、最小的部分值,留下中間值取平均數(shù),盡量保持?jǐn)?shù)據(jù)讀取的穩(wěn)定性及精度,循環(huán)部分遵循先讀取后顯示的思路,高度模塊化,結(jié)構(gòu)嚴(yán)謹(jǐn)、算法高效。軟件系統(tǒng)流程圖如圖3所示。
圖3 系統(tǒng)程序流程圖
使用高精度的電子秤、鋼尺、密度計(jì)等測量儀器進(jìn)行多次測量,測試數(shù)據(jù)分布均勻,覆蓋到量程的分布范圍。測試結(jié)果如表1至表3所示。
表1 重量測試數(shù)據(jù) 單位:g
表2 液位測試數(shù)據(jù) 單位:mm
表3 溶液類型測試
圖4 系統(tǒng)成品圖
根據(jù)上述測試數(shù)據(jù),通過分析計(jì)算,發(fā)現(xiàn)所測試數(shù)據(jù)的誤差均未超過允許誤差,可以得到以下結(jié)論:
(1)重量值測量精度高,滿足系統(tǒng)設(shè)計(jì)要求;
(2)液位測量精度高,滿足系統(tǒng)設(shè)計(jì)要求;
(3)可以正確顯示多種液體,滿足系統(tǒng)設(shè)計(jì)要求。
多功能液體容器系統(tǒng)采用單片機(jī)為控制核心,構(gòu)建單片機(jī)最小應(yīng)用系統(tǒng),增加稱重傳感器部分功能電路,實(shí)現(xiàn)液體重量測量,測量誤差可控制在1g范圍內(nèi);增加超聲波傳感器,實(shí)現(xiàn)液位測量功能,液位測量誤差可控制在2mm范圍內(nèi);根據(jù)測量結(jié)果計(jì)算溶液密度,與標(biāo)準(zhǔn)溶液密度比對,能夠正確識別出溶液種類,很好地實(shí)現(xiàn)了系統(tǒng)設(shè)計(jì)要求。