基于單片機(jī)的智能感溫水表的設(shè)計(jì)
摘要:為了克服現(xiàn)有的水表在技術(shù)上不能區(qū)分冷熱水的不足,設(shè)計(jì)了一種新型實(shí)用的智能感溫水表。系統(tǒng)采用雙干簧管設(shè)計(jì)了流量傳感器,提高了測(cè)量精度。AT89C52單片機(jī)作為主控芯片,系統(tǒng)工作時(shí),溫度傳感器DS18B20采集水溫信息傳入單片機(jī),并與設(shè)定的溫度值比較,當(dāng)判斷水溫高于設(shè)定值時(shí),系統(tǒng)開(kāi)始統(tǒng)計(jì)流量傳感器輸出的脈沖個(gè)數(shù),并以此計(jì)算當(dāng)前流量。流量數(shù)據(jù)通過(guò)單片機(jī)輸出在液晶顯示屏上,同時(shí)用E2PROM存儲(chǔ),進(jìn)行掉電保護(hù)。經(jīng)過(guò)測(cè)試,系統(tǒng)對(duì)溫水計(jì)量精確,具有良好的穩(wěn)定性,市場(chǎng)應(yīng)用前景廣闊。
關(guān)鍵詞:AT89C52單片機(jī);干簧管;DS18B20;液晶顯示屏;E2PROM
0 引言
現(xiàn)用的檢測(cè)熱水流量的方法是在熱水或暖氣管道的入戶端安裝一個(gè)水表,直接檢測(cè)流過(guò)的流量,根據(jù)記錄的流量來(lái)計(jì)費(fèi)。但是,熱水不可能一直使用,閑置在管道中的熱水會(huì)逐漸冷卻,每一次間隔較長(zhǎng)的使用,用戶都要事先放掉一些涼水。每一個(gè)采暖季開(kāi)始前,都需要循環(huán)大量的冷水來(lái)試驗(yàn)管道的可靠性,然后才會(huì)逐步提高水溫。而這些放掉或循環(huán)的冷水卻需要用戶按熱水的價(jià)格來(lái)承擔(dān)費(fèi)用,這顯然不合理。為了解決現(xiàn)有技術(shù)上的缺陷,本文對(duì)傳統(tǒng)的水表做了改進(jìn),采用AT89C52單片機(jī)作為主控芯片,由溫度傳感器DS18B20實(shí)時(shí)采集管內(nèi)液體溫度信息。當(dāng)溫度超過(guò)設(shè)定閾值時(shí),單片機(jī)啟動(dòng)流量計(jì)算。同時(shí),系統(tǒng)增加了顯示端口和存儲(chǔ)端口,可實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示和數(shù)據(jù)保存。
1 系統(tǒng)總體設(shè)計(jì)
智能感溫水表由信號(hào)采集、信號(hào)處理、計(jì)算以及數(shù)據(jù)顯示、記錄3部分組成,系統(tǒng)框架圖如圖1所示。
水管中的溫度傳感器實(shí)時(shí)采集液體溫度信息,傳給AT89C52單片機(jī)。單片機(jī)判斷傳來(lái)的溫度值大于閾值時(shí),啟動(dòng)流熱水量計(jì)算。流量傳感器是由安裝在管道內(nèi)的葉輪和一對(duì)干簧管實(shí)現(xiàn)的。當(dāng)熱水流過(guò)葉輪時(shí),葉輪轉(zhuǎn)動(dòng),通過(guò)干簧管形成電脈沖信號(hào),單片機(jī)統(tǒng)計(jì)脈沖數(shù)即可計(jì)算出當(dāng)前流量。計(jì)算的結(jié)果通過(guò)串口液晶顯示模塊顯示出來(lái)。同時(shí),所得的數(shù)據(jù)采用I2C總線,存儲(chǔ)到E2PROM中,進(jìn)行掉電保護(hù)。
2 系統(tǒng)硬件設(shè)計(jì)
硬件電路的搭建以AT89C52單片機(jī)為信號(hào)處理核心,P0口和P1口控制顯示電路(1602B),P2口控制溫度傳感器(DS18B20)和雙干簧管(MARR -5)的信號(hào)采集,P3口負(fù)責(zé)E2PROM(CAT24WC0X)存儲(chǔ)。系統(tǒng)的硬件電路示意圖如圖2所示。
2.1 流量傳感器的設(shè)計(jì)
水管中的液體流量信號(hào)的采集是通過(guò)雙干簧管傳感器實(shí)現(xiàn)的。系統(tǒng)采用了MARR-5干簧管,這是一種磁敏開(kāi)關(guān),其結(jié)構(gòu)如圖3所示。包含2片軟磁性材料做成的磁簧片,被封裝在充有惰性氣體的玻璃管里,磁簧片間留有空隙,構(gòu)成常開(kāi)觸點(diǎn)。
當(dāng)永久磁鐵靠近干簧管時(shí),簧片的接點(diǎn)就會(huì)感應(yīng)出極性相反的磁極。由于磁極極性相反而相互吸引,當(dāng)吸引的磁力超過(guò)簧片的抗力時(shí),分開(kāi)的接點(diǎn)便會(huì)吸合。
在熱水管道中安裝一個(gè)可以自由轉(zhuǎn)動(dòng)的葉輪,水的流動(dòng)推動(dòng)葉輪不斷旋轉(zhuǎn),流量越大,葉輪的轉(zhuǎn)速越高。葉輪軸向安裝一個(gè)計(jì)數(shù)轉(zhuǎn)盤(pán),一片永磁鐵固定轉(zhuǎn)盤(pán)上,干簧管固定安裝在計(jì)數(shù)轉(zhuǎn)盤(pán)附近。整個(gè)傳感器的組成示意圖如圖4所示。
轉(zhuǎn)盤(pán)每轉(zhuǎn)一圈,永磁鐵就經(jīng)過(guò)干簧管一次,即在信號(hào)端產(chǎn)生一個(gè)計(jì)量脈沖,單片機(jī)計(jì)數(shù)器統(tǒng)計(jì)計(jì)量脈沖即可求出流量。但是使用單個(gè)干簧管易受水錘現(xiàn)象、人為電磁干擾等外界因素的影響,產(chǎn)生較大的計(jì)量誤差。所以,感溫水表在設(shè)計(jì)流量傳感器時(shí)采用了雙干簧管傳感器(見(jiàn)圖4)。當(dāng)檢測(cè)到干簧管A吸合時(shí),先記錄下來(lái);再檢測(cè)干簧管B,只有檢測(cè)到干簧管B吸合后才認(rèn)為此次采集的計(jì)數(shù)脈沖有效。
2.2 溫度傳感器
水管溫度傳感器采用了Dallas公司的DS18B20傳感器,測(cè)量范圍:-55~+125℃,分辨率12位,滿足設(shè)計(jì)要求。DS18B20以計(jì)數(shù)器原理工作,可直接向單片機(jī)輸出數(shù)字量,不需要后加加A/D轉(zhuǎn)化模塊。它采用單總線方式,僅需一根信號(hào)線與單片機(jī)連接即可傳送串行數(shù)據(jù),且不需要外部元件。測(cè)溫結(jié)果的數(shù)字量位數(shù)為9~12位,并可編程選擇??刂坪?jiǎn)單,工作可靠。
2.3 液晶顯示電路和存儲(chǔ)電路
感溫水表信息顯示模塊采用液晶顯示屏(LCD)顯示。由于該水表顯示的內(nèi)容包括少量數(shù)字和字母,段式LCD1602B就可以滿足要求,且價(jià)格低廉。它內(nèi)部集成有LCD控制器、LCD驅(qū)動(dòng)器和RAM,因而可方便顯示數(shù)據(jù)的編程。設(shè)計(jì)中,1602B采用3~4線串行數(shù)據(jù)輸入,直接與單片機(jī)P0口相連。由于串行接口方式節(jié)省了所需的口線和系統(tǒng)資源,因而使系統(tǒng)具有較高的資源利用率。
數(shù)據(jù)存儲(chǔ)電路采用I2C總線的E2PROM存儲(chǔ)器CAT24WC04。CAT24WC04是串行的E2PROM存儲(chǔ)器,其存儲(chǔ)容量為4 KB。圖2中草SCL為時(shí)鐘線,SDA為數(shù)據(jù)線。當(dāng)前時(shí)刻的流量數(shù)據(jù)會(huì)保存在CAT24WC04中,可保證掉電時(shí),數(shù)據(jù)不丟失。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 軟件總體設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法,主程序通過(guò)調(diào)用各子程序模塊來(lái)實(shí)現(xiàn)相應(yīng)的功能,其程序流程如圖5所示。
系統(tǒng)初始化程序完成單片機(jī)端口的功能選擇及各寄存器、LCD顯示模塊的初始化。溫度傳感器模塊檢測(cè)當(dāng)前水管中液體溫度,并與設(shè)定的閾值(85℃)相比較,當(dāng)溫度高于閾值時(shí),流量傳感器模塊計(jì)算當(dāng)前流量。LCD顯示模塊程序完成流量顯示,存儲(chǔ)模塊存儲(chǔ)當(dāng)前流量值。
3.2 流量信號(hào)的計(jì)算
流量傳感器中的干簧管采用單計(jì)數(shù)脈沖輸入,2個(gè)100μF的電容用來(lái)消除雙干簧管閉合時(shí)產(chǎn)生的抖動(dòng)。如圖4所示,轉(zhuǎn)盤(pán)每轉(zhuǎn)一圈,永磁鐵經(jīng)過(guò)干簧管附近一次,即產(chǎn)生一個(gè)計(jì)量脈沖。雙干簧管的情況下這要計(jì)數(shù)脈沖有效就對(duì)流量進(jìn)行計(jì)算。具體的程序流程如圖6所示。
當(dāng)檢測(cè)到干簧管A的脈沖信號(hào)是并不直接開(kāi)始計(jì)算,還要檢測(cè)干簧管B得脈沖信號(hào)。當(dāng)干簧管B的脈沖信號(hào)也被檢測(cè)到的時(shí)候,認(rèn)為此次計(jì)數(shù)脈沖有效,并記錄,與以前的檢測(cè)脈沖數(shù)求和。
在室溫下進(jìn)行20次測(cè)量實(shí)驗(yàn),傳感器管道直徑50 mm。實(shí)驗(yàn)數(shù)據(jù)得到該流量傳感器平均一次有效計(jì)數(shù)脈沖對(duì)應(yīng)0.64 L的液體流過(guò)設(shè)計(jì)管道。
若當(dāng)前記錄的總的脈沖數(shù)為N,則此時(shí)的流量Q=0.64N(單位:L)。
3.3 溫度測(cè)量
感溫水表的溫度測(cè)量系統(tǒng)的溫度傳感器是DS18B20,硬件電路簡(jiǎn)單、穩(wěn)定。但是這是以犧牲軟件為代價(jià)的,在編程時(shí)必須嚴(yán)格遵守DS18B20工作時(shí)序的要求。基于DS18B20的溫度信號(hào)檢測(cè)流程如圖7所示。
先由主機(jī)給DS18B20發(fā)一個(gè)復(fù)位脈沖,在DS18B20發(fā)回響應(yīng)脈沖給主機(jī)后,主機(jī)再發(fā)讀ROM命令(代碼33H),并發(fā)一個(gè)15μs左右的脈沖,接著再讀取DS18B20序列號(hào)的一位,并用同樣方法讀取序列號(hào)的每一位。
4 結(jié)語(yǔ)
本文所設(shè)計(jì)的感溫水表,以AT89C52單片機(jī)為核心控制芯片,加入了溫度傳感器、流量傳感器、外圍顯示電路和E2PROM存儲(chǔ)設(shè)備。
設(shè)計(jì)提出的采用DS18B20傳感器采集溫度信號(hào)的設(shè)計(jì)方案,克服了普通水表不能分辨冷熱水的缺陷,適合用于我國(guó)各種不同的區(qū)域環(huán)境。同時(shí),其計(jì)量準(zhǔn)確度符合國(guó)家標(biāo)準(zhǔn)要求,有良好的實(shí)用價(jià)值,具有廣闊的市場(chǎng)前景。