馬培松 陶華偉 李益民 付麥霞 呂宗旺
(河南工業(yè)大學(xué),河南 鄭州 450001)
水是生命之源,人的生活離不開水。在現(xiàn)實(shí)生活中,飲水機(jī)成為家庭必備的飲水設(shè)施。飲水機(jī)能有效克服直接喝水或飲用桶裝飲用水所帶來(lái)的不良問(wèn)題。通過(guò)飲水機(jī)內(nèi)部的設(shè)備對(duì)冷水進(jìn)行加熱,從而能快速地給人們供應(yīng)熱水[1]。
目前,桶裝飲水機(jī)在市場(chǎng)中已占有一席之地。在無(wú)人監(jiān)視時(shí),部分飲水機(jī)仍會(huì)對(duì)滾水進(jìn)行加熱,不但會(huì)造成資源的浪費(fèi),嚴(yán)重時(shí)甚至?xí)<叭藛T的生命安全。為了解決上述問(wèn)題,并引進(jìn)新功能,通過(guò)引入單片機(jī)系統(tǒng)對(duì)飲水機(jī)進(jìn)行控制,通過(guò)監(jiān)測(cè)水位來(lái)避免出現(xiàn)空燒的情況,利用超聲波測(cè)距模塊來(lái)實(shí)現(xiàn)自動(dòng)出水功能。
本研究設(shè)計(jì)的多功能飲水機(jī)系統(tǒng)(見(jiàn)圖1)是利用現(xiàn)代電子技術(shù),通過(guò)外加單片機(jī)控制模塊來(lái)對(duì)傳統(tǒng)的飲水機(jī)進(jìn)行改造,并保留傳統(tǒng)飲水機(jī)的樣式。本研究設(shè)計(jì)的飲水機(jī)利用外圍回路來(lái)實(shí)現(xiàn)溫控、照明控制、溫度監(jiān)測(cè)和顯示、自動(dòng)出水等功能。
圖1 多功能飲水機(jī)系統(tǒng)
硬件電路以AT89C51芯片為核心,該芯片內(nèi)部有4 kB的FLASH存儲(chǔ)空間,芯片外部有40個(gè)引腳(見(jiàn)圖2),4個(gè)8位的并行口(即32個(gè)并行接口),其內(nèi)部有2個(gè)16位的定時(shí)計(jì)數(shù)器(Timer0、Timer1)以及2個(gè)中斷控制器。通過(guò)AT89C51芯片自帶的I/O口來(lái)外接圖1中的各個(gè)模塊,并使用Keil軟件進(jìn)行代碼的編寫,完成系統(tǒng)的設(shè)計(jì)需求。
圖2 AT89C51芯片引腳圖
本研究所使用的開發(fā)板最大外接的獨(dú)立鍵盤數(shù)量為4個(gè)。根據(jù)實(shí)際需求來(lái)選擇按鍵數(shù)量更多的矩陣鍵盤,矩陣鍵盤通過(guò)8個(gè)I/O口連接到單片機(jī)上。根據(jù)實(shí)際需求,設(shè)置有手動(dòng)控制熱水水溫的上限按鈕、手動(dòng)加熱按鈕、自動(dòng)加熱水溫的下限按鈕、電源開關(guān)按鈕、手動(dòng)出水按鈕等按鈕。通過(guò)手動(dòng)控制加熱水溫的上限按鈕來(lái)設(shè)置加熱時(shí)候熱水的溫度,該溫度值應(yīng)該大于系統(tǒng)自動(dòng)加熱時(shí)熱水水溫的下限。當(dāng)按下手動(dòng)加熱按鈕后,該多功能飲水機(jī)會(huì)將水加熱到手動(dòng)控制熱水水溫的上限值;通過(guò)自動(dòng)加熱水溫下限按鈕可實(shí)時(shí)調(diào)整熱水的下限溫度,讓熱水溫度保持在一定的范圍內(nèi);手動(dòng)出水按鈕是自動(dòng)出水模塊的備用方案,當(dāng)自動(dòng)出水模塊出現(xiàn)故障時(shí),可按動(dòng)手動(dòng)出水按鈕讓飲水機(jī)出水。
溫度檢測(cè)模塊使用的是DS18B20芯片,其測(cè)溫范圍為-55~125℃,其在-10~85℃內(nèi)的測(cè)量誤差小于0.4℃,基本符合飲水機(jī)的水溫監(jiān)測(cè)需求。同時(shí),該芯片具有體積較小、抗干擾能力強(qiáng)等優(yōu)點(diǎn),且電路連接方式比較簡(jiǎn)單,使用單總線通信[2]。DS18B20芯片內(nèi)部含有EEPROM,通過(guò)軟件配置可對(duì)芯片的轉(zhuǎn)換精度及報(bào)警溫度進(jìn)行設(shè)定,設(shè)置完成后,即使在系統(tǒng)因突發(fā)情況而掉電,EEPROM芯片的數(shù)據(jù)也不會(huì)丟失。DS18B20外部有三個(gè)引腳(見(jiàn)圖3),分別為GND、DQ、VDD,三者的功能分別是接地、單總線通信接口和接5 V電源。根據(jù)要求,該芯片通過(guò)VDD連接電源時(shí)要外接一個(gè)上拉電阻,這樣才能正常使用。將DS18B20芯片連接到主控電路時(shí),在軟件層根據(jù)協(xié)議對(duì)其進(jìn)行編碼,便可將DS18B20測(cè)出的存儲(chǔ)在高速緩存器內(nèi)部的溫度數(shù)據(jù)反饋給單片機(jī)系統(tǒng),方便后續(xù)操作。
圖3 DS18B20芯片引腳圖
該系統(tǒng)可在顯示模塊顯示當(dāng)前水溫、手動(dòng)加熱時(shí)設(shè)置的水溫、恒溫狀態(tài)下自動(dòng)保持的溫度等數(shù)據(jù)。在考慮溫度顯示功能及用戶體驗(yàn)、硬件成本的前提下,本研究選用LCD1602液晶顯示屏來(lái)實(shí)時(shí)顯示當(dāng)前水溫及水桶內(nèi)的剩余水量。該模塊外部共有16引腳(見(jiàn)圖4),有3個(gè)電源引腳和1個(gè)接地引腳,其余引腳均是輸入和輸出引腳。通過(guò)對(duì)該模塊進(jìn)行編碼,可將DS18B20讀出的溫度在液晶顯示模塊上實(shí)時(shí)顯示出[3]。
圖4 LCD1602芯片引腳圖
超聲波測(cè)距模塊是實(shí)現(xiàn)系統(tǒng)自動(dòng)出水功能的關(guān)鍵,該系統(tǒng)的熱水出水口處及常溫水出水口處都配有HC-SR04超聲波測(cè)距模塊,該模塊外部有四個(gè)引腳(見(jiàn)圖5),分別為VCC(外接5 V電源)、Trig(輸入觸發(fā)信號(hào))、Echo(傳出超聲波信號(hào))、Gnd(接地)。該模塊使用I/O口的Trig觸發(fā)測(cè)距功能,在給該引腳一個(gè)大于10 us的高電平,之后該模塊會(huì)發(fā)射出8個(gè)40 kHz的超聲波,并不斷檢測(cè)是否有返回的信號(hào),可測(cè)量距離為0.02~4 m。當(dāng)超聲波遇到障礙物時(shí)會(huì)返回,通過(guò)I/O口ECHO來(lái)輸出一個(gè)高電平,單片機(jī)系統(tǒng)通過(guò)測(cè)量超聲波往返的時(shí)間(即高電平的持續(xù)時(shí)間),并通過(guò)公式(1)來(lái)計(jì)算出距離distance,從而判斷出水杯是否放在了出水口處。
圖5 HC-SR04芯片引腳圖
式中:t為高電平的持續(xù)時(shí)間;v為聲速,空氣中的音速在1個(gè)標(biāo)準(zhǔn)大氣壓和15℃的條件下約為340 m/s。
當(dāng)距離合適時(shí),單片機(jī)會(huì)通過(guò)I/O口邏輯控制讓外接的飲水機(jī)自動(dòng)出水,并通過(guò)AT89C51內(nèi)部自帶的定時(shí)器來(lái)計(jì)算出出水時(shí)間,再將此時(shí)間乘以每秒鐘的出水量,便可實(shí)時(shí)檢測(cè)出當(dāng)下水桶內(nèi)部的剩余水量,當(dāng)水位過(guò)低時(shí)便停止加熱[4]。
自動(dòng)照明部分采用PCF8591芯片來(lái)實(shí)現(xiàn)AD轉(zhuǎn)換,該模塊具有1個(gè)模擬輸出、4個(gè)模擬輸入及供IIC使用的串行總線接口,該模塊的最大轉(zhuǎn)換速率由設(shè)定的IIC總線的最大速度來(lái)決定。該芯片的引腳圖如圖6所示。PCF8591芯片通過(guò)外接光敏電阻可測(cè)量外界的亮度變化,當(dāng)入射光變強(qiáng)時(shí),光敏電阻的電阻值會(huì)變小;當(dāng)入射光變?nèi)鯐r(shí),光敏電阻的電阻值會(huì)變大。單片機(jī)檢測(cè)到外界亮度低于一定值時(shí),飲水機(jī)外接燈管會(huì)自動(dòng)點(diǎn)亮。
圖6 PCF8591芯片引腳圖
系統(tǒng)軟件部分設(shè)計(jì)主要是使用Keil4軟件進(jìn)行代碼的編寫,使用單片機(jī)I/O口來(lái)操作單片機(jī)外部外接的PCF8591 AD/DA轉(zhuǎn)換模塊、LCD1602顯示模塊、DS18B20溫度檢測(cè)模塊、HC-SR04超聲波測(cè)距模塊、矩陣鍵盤模塊,實(shí)現(xiàn)自動(dòng)出水、水位監(jiān)控、自動(dòng)加熱等功能。
在給飲水機(jī)裝上一桶水,系統(tǒng)上電后,單片機(jī)內(nèi)部燒錄的程序會(huì)控制單片機(jī)時(shí)刻檢測(cè)DS18B20探測(cè)的外部水溫,檢測(cè)熱水溫度是否達(dá)到設(shè)置的熱水水溫下限值,如果沒(méi)有達(dá)到,在主函數(shù)邏輯控制下單片機(jī)加熱系統(tǒng)對(duì)熱水進(jìn)行加熱;當(dāng)達(dá)到預(yù)設(shè)溫度時(shí),熱水的溫度會(huì)穩(wěn)定在附近。當(dāng)使用水杯接水時(shí),通過(guò)內(nèi)部終端檢測(cè)HC-SR04超聲波模塊發(fā)射出的超聲波的往返時(shí)間計(jì)算出水杯到出水口的距離。當(dāng)水杯距離出水口足夠近時(shí),單片機(jī)就會(huì)控制飲水機(jī)自動(dòng)出水。系統(tǒng)溫度檢測(cè)、自動(dòng)出水功能軟件設(shè)計(jì)框圖見(jiàn)圖7、圖8。
圖7 系統(tǒng)溫度檢測(cè)軟件設(shè)計(jì)框圖
圖8 單片機(jī)自動(dòng)出水功能軟件設(shè)計(jì)流程框圖
通過(guò)代碼對(duì)HC-SR04模塊Trig引腳賦值10 us以上的高電平,讓其發(fā)射出8個(gè)40 kHz的超聲波,芯片開始工作。單片機(jī)時(shí)刻檢測(cè)該芯片是否接收到超聲波的返回信號(hào)。當(dāng)信號(hào)返回時(shí),該模塊的Echo引腳會(huì)向單片機(jī)輸送一個(gè)高電平信號(hào)。通過(guò)編程可計(jì)算出上述高電平的持續(xù)時(shí)間,即超聲波往返時(shí)間長(zhǎng)度,并通過(guò)公式(1)來(lái)計(jì)算水杯距接水口的距離。
使用IIC協(xié)議寫入控制字節(jié),讓PCF8591處于AD轉(zhuǎn)換模式,并讓其不斷接收數(shù)據(jù)。根據(jù)IIC協(xié)議,PCF8591的工作通道可選擇光敏電阻通道,之后將該模塊讀取到的數(shù)值反饋給單片機(jī)。
基于單片機(jī)的多功能飲水機(jī)是利用當(dāng)下較為前沿的電子技術(shù)對(duì)傳統(tǒng)飲水機(jī)進(jìn)行改進(jìn),對(duì)傳統(tǒng)飲水機(jī)缺乏的功能進(jìn)行補(bǔ)充,方便用戶的使用,增加用戶使用產(chǎn)品時(shí)的幸福感[1]。設(shè)計(jì)過(guò)程中采用的是當(dāng)下較為普及、價(jià)格較低、性能好的硬件設(shè)施,從而減少成本支出。本研究設(shè)計(jì)出的飲水機(jī)具有較強(qiáng)的實(shí)用性與可開發(fā)性,能夠?yàn)殚_發(fā)者帶來(lái)良好的經(jīng)濟(jì)效益。