南昌航空大學(xué)測(cè)試與光電工程學(xué)院 林奇盛
南昌航空大學(xué)信息工程學(xué)院 熊 器
南昌航空大學(xué)測(cè)試與光電工程學(xué)院 彭偉強(qiáng)
基于單片機(jī)的飲水機(jī)溫控系統(tǒng)的設(shè)計(jì)
南昌航空大學(xué)測(cè)試與光電工程學(xué)院 林奇盛
南昌航空大學(xué)信息工程學(xué)院 熊 器
南昌航空大學(xué)測(cè)試與光電工程學(xué)院 彭偉強(qiáng)
介紹一種飲水機(jī)的溫度控制系統(tǒng)。該系統(tǒng)利用軟件編程實(shí)現(xiàn)飲水機(jī)的智能溫控,在保溫階段采用雙位調(diào)節(jié)進(jìn)行溫度控制,控制精度為±2℃,采用該溫控系統(tǒng)可以使得飲水機(jī)在使用過(guò)程不產(chǎn)生“千滾水”。保溫溫度、保溫時(shí)間和預(yù)加熱時(shí)間可以自由設(shè)定,使得飲水機(jī)使用起來(lái)更加方便。
單片機(jī);溫度控制;節(jié)能減排
隨著我國(guó)經(jīng)濟(jì)發(fā)展和國(guó)際能源緊張局勢(shì)的加劇,人們環(huán)保意識(shí)的提高,越來(lái)越多的人在購(gòu)買(mǎi)家電產(chǎn)品時(shí)都把節(jié)能當(dāng)做重要的衡量指標(biāo)。飲水機(jī)作為一種常用的家用電器,給我們的日常生活帶來(lái)了極大方便。目前市場(chǎng)上大部分飲水機(jī)采用熱敏電阻進(jìn)行溫控,飲水機(jī)將水從室溫加熱到沸騰,溫控開(kāi)關(guān)斷開(kāi),停止加熱;之后溫度緩緩下降,當(dāng)溫度下降到一定時(shí),溫控開(kāi)關(guān)閉合,然后又繼續(xù)加熱到沸騰,如此周而復(fù)始。如果用戶(hù)在喝完水之后忘記切斷電源,就會(huì)使水反復(fù)燒開(kāi),不僅浪費(fèi)能源,而且容易形成含有重金屬、砷化物等有害物質(zhì)的“千滾水”。本文主要討論如何應(yīng)用單片機(jī),為飲水機(jī)設(shè)計(jì)一個(gè)節(jié)能環(huán)保的溫控系統(tǒng),彌補(bǔ)飲水機(jī)的這些缺點(diǎn)。實(shí)驗(yàn)結(jié)果表明該溫控系統(tǒng)具有穩(wěn)定性好、易于操作、性?xún)r(jià)比高的特點(diǎn),將會(huì)有廣泛的發(fā)展前景。
系統(tǒng)主要實(shí)現(xiàn)時(shí)間顯示,溫度顯示,保溫階段防止水反復(fù)燒開(kāi),保溫溫度、保溫時(shí)間和預(yù)加熱時(shí)間可自由設(shè)定的功能。系統(tǒng)硬件框圖如圖1所示,以STC89C516RD單片機(jī)為核心,擴(kuò)展外部存儲(chǔ)器構(gòu)成系統(tǒng)的主控模塊[1]。STC89C516RD單片機(jī)具有超強(qiáng)抗干擾/高速/低功耗的特點(diǎn),工作電壓為3.4V~5.5V,工作頻率0~40MHZ,其指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇,內(nèi)部自帶看門(mén)狗。
飲水機(jī)加熱膽中的水溫由DS18B20溫度傳感器檢測(cè)并轉(zhuǎn)換成數(shù)字量通過(guò)串行方式傳送給單片機(jī)。DS18B20采用單總線(xiàn)接口方式,僅需要一個(gè)引腳來(lái)發(fā)送或接受數(shù)據(jù),單片機(jī)與DS18B20之間僅需要一條數(shù)據(jù)線(xiàn)。該溫度傳感器測(cè)溫范圍為-55℃~+125℃,固有測(cè)溫分辨率為0.5℃,工作電壓為3~5.5V/DC,在使用時(shí)不需要任何外圍元件,它能夠采集被測(cè)物的溫度并通過(guò)串行方式傳送給單片機(jī)。當(dāng)單片機(jī)給DS18B20發(fā)送溫度轉(zhuǎn)換命令后,DS18B20開(kāi)始進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間與設(shè)定的分辨率有關(guān),當(dāng)設(shè)置為9位時(shí),最大轉(zhuǎn)換時(shí)間為3.75ms;10位時(shí)轉(zhuǎn)換時(shí)間為187.5ms;11位時(shí)為375ms;12位時(shí)為750ms。當(dāng)分辨率設(shè)置為9位時(shí),溫度轉(zhuǎn)換時(shí)間短,但是測(cè)量精度不高,采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間太長(zhǎng),綜合轉(zhuǎn)換時(shí)間和測(cè)量精度考慮,本系統(tǒng)在軟件編程時(shí)將其設(shè)置為11位。該器件具有體積小、質(zhì)量輕、性能穩(wěn)定等優(yōu)點(diǎn),其各方面都滿(mǎn)足系統(tǒng)的設(shè)計(jì)要求。在硬件電路上,DS18B20可以用3~5.5V的外部電源供電方式工作,也可以采用寄生電源供電方式工作。當(dāng)采用外部電源供電時(shí),DS18B20的VDD引腳接外部電源正極,GND引腳接電源負(fù)極,DQ引腳通過(guò)一個(gè)4.7KΩ的上拉電阻與單片機(jī)相連;當(dāng)采用寄生電源供電時(shí),DS18B20的VDD引腳必須接地,DS18B20從單總線(xiàn)上汲取能量,在信號(hào)線(xiàn)處于高電平期間把能量存儲(chǔ)在內(nèi)部電容里,在信號(hào)線(xiàn)處于低電平期間由內(nèi)部電容提供能量,直到高電平到來(lái)再給寄生電容充電。當(dāng)溫度高于100℃時(shí),DS18B20漏電流比較大,采用寄生電源供電可能導(dǎo)致其無(wú)法與單片機(jī)進(jìn)行通訊。由于飲水機(jī)中的水在飲用之前都要燒開(kāi),為了確保系統(tǒng)的可靠性,本系統(tǒng)采用外部電源供電方式,電路原理圖如圖2所示,DS18B20的DQ腳與單片機(jī)的P1.3引腳相連,R1為上拉電阻。由于要對(duì)飲水機(jī)加熱膽中的水進(jìn)行測(cè)溫,先將DS18B20放置在Φ6mm的不銹鋼保護(hù)管中,然后填充硅膠增強(qiáng)導(dǎo)熱性,再放入加熱膽中,這樣測(cè)量效果比較好。
圖1 系統(tǒng)結(jié)構(gòu)框圖
圖2 DS18B20測(cè)溫電路
圖3 DS1302時(shí)鐘電路
圖4 EEPROM接口電路
圖5 鍵盤(pán)接口電路
圖6 繼電器模塊電路
圖8 漢字字模的提取原理
為了增強(qiáng)系統(tǒng)的使用靈活性,使其具備定時(shí)加熱的功能,需要增加一個(gè)時(shí)鐘電路。本設(shè)計(jì)采用串行接口實(shí)時(shí)時(shí)鐘芯片DS1302為系統(tǒng)提供實(shí)時(shí)時(shí)鐘,它可以對(duì)年、月、日、周、時(shí)、分和秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V,芯片本身具備對(duì)備份電池進(jìn)行涓細(xì)流充電的功能,可以延長(zhǎng)備份電池的壽命。時(shí)鐘電路原理圖如圖3所示,DS1302實(shí)時(shí)時(shí)鐘電路采用32.768KHZ的晶振,與單片機(jī)的P2.0~P2.2引腳相連,采用串行數(shù)據(jù)傳輸。DS1302的VCC1外接3V的紐扣電池,保證在掉電的情況下DS1302也能正常工作。
當(dāng)由于某些外界因素如斷電導(dǎo)致系統(tǒng)停止工作時(shí),系統(tǒng)里面如保溫溫度、保溫時(shí)間等用戶(hù)設(shè)定的參數(shù)將會(huì)丟失,在系統(tǒng)重啟之后需要重新設(shè)定,從而造成使用的不方便。所以在用戶(hù)完成這些參數(shù)的設(shè)置之后需要對(duì)這些參數(shù)進(jìn)行備份,防止掉電丟失。本設(shè)計(jì)采用AT24C01芯片,它提供128字節(jié)的EEPROM存儲(chǔ)空間,采用IIC總線(xiàn)通信,每次用戶(hù)進(jìn)行按鍵設(shè)置之后,將改變的數(shù)據(jù)復(fù)制到AT24C01中,這樣系統(tǒng)每次重啟時(shí)直接從AT24C01中讀取相關(guān)參數(shù),免去了重復(fù)設(shè)置帶來(lái)的麻煩。EEPROM接口電路原理圖如圖4所示。
當(dāng)飲水機(jī)的使用環(huán)境改變時(shí),用戶(hù)可能需要對(duì)系統(tǒng)的保溫溫度、保溫時(shí)間和預(yù)加熱時(shí)間進(jìn)行相應(yīng)的修改或者系統(tǒng)的時(shí)鐘因外界因素而導(dǎo)致時(shí)間顯示錯(cuò)誤時(shí)也需要人為進(jìn)行修正。本系統(tǒng)通過(guò)5個(gè)獨(dú)立按鍵來(lái)實(shí)現(xiàn)此功能。由于系統(tǒng)的按鍵個(gè)數(shù)不是很多,采用獨(dú)立按鍵連接方式,單片機(jī)的P3.0~P3.4口通過(guò)上拉電阻與5個(gè)按鍵相連構(gòu)成系統(tǒng)的鍵盤(pán)輸入部分。鍵盤(pán)輸入電路原理圖如圖5所示。在軟件設(shè)計(jì)時(shí)采用電平檢測(cè)來(lái)判斷按鍵是否按下,當(dāng)檢測(cè)到低電平時(shí),說(shuō)明按鍵被按下,否則,未按下。
系統(tǒng)可以采用可控硅、繼電器等作為輸出單元。由于本設(shè)計(jì)的溫控系統(tǒng)的控制對(duì)象為飲水機(jī),其控制精度要求不是很高,采用繼電器作為輸出單元即可滿(mǎn)足設(shè)計(jì)要求。單片機(jī)的P1.2引腳通過(guò)電阻R2與三極管S8550基極相連控制繼電器的通斷。由于繼電器線(xiàn)圈在切斷瞬間會(huì)產(chǎn)生一個(gè)感應(yīng)電動(dòng)勢(shì),與電源電壓相加直接加到三級(jí)管集電極,容易導(dǎo)致三極管擊穿,所以在繼電器線(xiàn)圈兩端接上一個(gè)二極管1N4148抑制感應(yīng)電動(dòng)勢(shì)。繼電器模塊電路原理圖如圖6所示。
2.6.1 TFT彩屏色彩模式簡(jiǎn)介
在TFT彩屏中,一個(gè)黑白或單色像素點(diǎn)用一位二進(jìn)制數(shù)表示,一個(gè)彩色像素用多位二進(jìn)制數(shù)表示。表示彩色像素的二進(jìn)制數(shù)的位數(shù)稱(chēng)為顏色質(zhì)量。TFT彩屏顯示的顏色質(zhì)量可以選擇1位色、8位色、16位色、24位色和32位色。由于系統(tǒng)采用的是8位單片機(jī),其對(duì)大批量數(shù)據(jù)傳輸速度不是很快,再根據(jù)飲水機(jī)的使用環(huán)境對(duì)顏色要求不是特別高,所以本設(shè)計(jì)采用16位色表示一個(gè)彩色點(diǎn)。圖7為用1個(gè)16位二進(jìn)制數(shù)表示一個(gè)彩色點(diǎn)的示意圖,高5位表示紅色所占比例,低5位表示藍(lán)色所占比例,其余位表示綠色所占比例,即R5G6B5格式[2],這樣一共可以組合出65536種顏色。例如,利用該表示方法紅色可表示為1111 1000 0000 0000 B,高5位全1,中間6位和低5位全0,表示紅色部分占100%,綠色和藍(lán)色占0%,用十六進(jìn)制表示為f800H。同理可知黑色可用0000H表示,藍(lán)色可用001fH表示。所以只要合理搭配紅綠藍(lán)三基色的比例,就可以調(diào)出想要的顏色。
2.6.2 TFT彩屏顯示原理及漢字字模的獲取
了解了TFT彩屏像素點(diǎn)顏色的表示方法之后,要把一個(gè)漢字顯示在TFT彩屏上,還需要獲取需要顯示的漢字的字模。在UCDOS中文宋體字庫(kù)中,每個(gè)漢字均由16行16列的點(diǎn)陣組成,即每個(gè)字均由256個(gè)點(diǎn)來(lái)表示[3]。如果把每個(gè)點(diǎn)理解為一個(gè)像素,把每個(gè)漢字的形狀理解為一幅圖像,那么TFT彩屏就可以顯示出任意形狀的字符,通過(guò)更改像素點(diǎn)的顏色就可顯示出彩色圖像。利用行掃描的方法,可以獲取任意一個(gè)漢字的字模。例如,把“南”字看成一幅圖像,逐行掃描,有筆畫(huà)的地方為1,沒(méi)有筆畫(huà)的地方為0,則“南”字的第一行可用0100H表示,第二行可用0104H表示,第三行可用FFFEH表示,……,示意圖如圖8所示。利用這種方法可用得到任意漢字的字模,依靠人工提取漢字字模比較繁瑣,漢字字??梢酝ㄟ^(guò)字模提取軟件來(lái)提取。
獲取漢字字模之后,當(dāng)要把某個(gè)漢字顯示在彩屏的某個(gè)區(qū)域時(shí),只需要通過(guò)程序設(shè)計(jì)對(duì)該區(qū)域逐行掃描,每掃描一個(gè)點(diǎn),向彩屏發(fā)送一次顏色碼,有筆畫(huà)的區(qū)域發(fā)送字體顏色,沒(méi)有筆畫(huà)的區(qū)域發(fā)送字體背景顏色,這樣把該區(qū)域掃描完之后,就可以把一個(gè)漢字顯示出來(lái)了。利用該方法,可用將中英文字符、彩色圖像顯示在彩屏的任意區(qū)域。
2.6.3 TFT彩屏接口電路
本系統(tǒng)采用的TFT彩屏主控芯片為ILI9325,分辨率為128×160,TFT彩屏電路原理圖如圖9所示。利用該彩屏,通過(guò)軟件編程可以設(shè)置出一個(gè)友好程度很高的界面。TFT彩屏主要顯示當(dāng)前時(shí)間、當(dāng)前水溫、保溫溫度、保溫時(shí)間、預(yù)加熱時(shí)間和飲水機(jī)當(dāng)前的狀態(tài)等內(nèi)容;在用戶(hù)進(jìn)行按鍵設(shè)置時(shí),顯示設(shè)置提示。
在一定的控制系統(tǒng)中,首先將需要控制的參數(shù)由傳感器轉(zhuǎn)換成一定的信號(hào)后再與預(yù)設(shè)定的值進(jìn)行比較,把比較得到的差值信號(hào)經(jīng)過(guò)一定規(guī)律的計(jì)算后得到相應(yīng)的控制值,將控制量送給控制系統(tǒng)進(jìn)行相應(yīng)的控制,不停的進(jìn)行上述工作,從而達(dá)到自動(dòng)調(diào)節(jié)的目的[4]。在本系統(tǒng)中可以采用PID控制等控制方法對(duì)水溫進(jìn)行控制,由于本系統(tǒng)的控制精度要求不是很高,考慮到生產(chǎn)成本,本系統(tǒng)在保溫階段采用雙位調(diào)節(jié)控制對(duì)水溫進(jìn)行控制。雙位調(diào)節(jié)控制規(guī)律是較常用的位置式控制,其作用是不連續(xù)的,調(diào)節(jié)機(jī)構(gòu)只有開(kāi)和關(guān)兩個(gè)位置[5],該控制方法具有簡(jiǎn)單易行、成本低廉的特點(diǎn),在控制精度要求不是很高的場(chǎng)合廣泛應(yīng)用。
本設(shè)計(jì)希望通過(guò)以STC89C516RD單片機(jī)為核心的系統(tǒng),采用軟件編程,防止飲水機(jī)形成“千滾水”,達(dá)到節(jié)能環(huán)保的目的。
圖9 TFT彩屏接口電路
圖10 主程序流程圖
圖11 雙位調(diào)節(jié)控制子程序流程圖
圖12 環(huán)境溫度為22℃,保溫溫度設(shè)定為60℃的溫控結(jié)果
圖13 自動(dòng)保溫階段溫控結(jié)果
在系統(tǒng)處于保溫狀態(tài)時(shí),通過(guò)雙位調(diào)節(jié)控制使得水溫在保溫溫度上下小范圍內(nèi)波動(dòng),如果檢測(cè)到水溫低于保溫溫度2℃,閉合繼電器,進(jìn)行加熱;如果檢測(cè)到水溫大于或等于保溫溫度,斷開(kāi)繼電器,停止加熱。雙位調(diào)節(jié)控制子程序流程圖如圖11所示,ttest為當(dāng)前水溫,tset為用戶(hù)設(shè)定的保溫溫度。
在本設(shè)計(jì)中,通過(guò)STC89C516RD單片機(jī)的外部中斷0進(jìn)入按鍵掃描程序,當(dāng)系統(tǒng)的按鍵K3被按下后進(jìn)入按鍵掃描子程序,再次被下后則退出按鍵設(shè)置,在退出按鍵設(shè)置時(shí),需要將用戶(hù)更改的參數(shù)更新到AT24C01中,防止掉電丟失。系統(tǒng)按鍵包括進(jìn)入/退出設(shè)置、左移、右移、加1和減1五個(gè)按鍵。通過(guò)按鍵用戶(hù)可以進(jìn)行保溫溫度設(shè)置、保溫時(shí)間設(shè)置、預(yù)加熱時(shí)間設(shè)置和系統(tǒng)時(shí)鐘設(shè)置。在用戶(hù)進(jìn)行按鍵設(shè)置時(shí),通過(guò)軟件編程讓TFT彩屏顯示設(shè)置提示,這樣使得飲水機(jī)使用起來(lái)更加方便。
當(dāng)系統(tǒng)的使用過(guò)程中受到干擾而失控,引起程序亂飛,或者程序陷入“死循環(huán)”,這時(shí)需要采用“看門(mén)狗”使系統(tǒng)脫離這種狀態(tài)。STC89C5 16RD單片機(jī)內(nèi)部自帶一個(gè)14位看門(mén)狗定時(shí)器,當(dāng)采用12時(shí)鐘模式時(shí),由于采用了“預(yù)分頻技術(shù)”,它的溢出時(shí)間=(N*Prescale*32768)/晶振頻率,其中N是單片機(jī)的時(shí)鐘周期,Prescale時(shí)預(yù)分頻數(shù),如果采用12MHZ的晶振,通過(guò)設(shè)置相關(guān)寄存器,看門(mén)狗溢出時(shí)間范圍可設(shè)定為65.5ms~8.38s。系統(tǒng)采用12時(shí)鐘周期模式,晶振頻率為12MHZ,如果系統(tǒng)在執(zhí)行過(guò)程中不停地喂狗,是比較浪費(fèi)時(shí)間的,為了節(jié)省單片機(jī)資源,本設(shè)計(jì)將看門(mén)狗溢出時(shí)間設(shè)定為8.38s。
圖12和圖13為室溫22℃下,保溫溫度設(shè)定為60℃時(shí),根據(jù)系統(tǒng)溫控結(jié)果所繪制的曲線(xiàn)。圖中橫坐標(biāo)為采樣時(shí)間(單位:分鐘),縱坐標(biāo)為溫度(單位:℃)。
實(shí)驗(yàn)結(jié)果表明,該溫度控制系統(tǒng)實(shí)現(xiàn)了預(yù)期設(shè)計(jì)的目的。在保溫階段,系統(tǒng)采用雙位調(diào)節(jié)控制,溫度控制精度達(dá)到±2℃,防止飲水機(jī)在使用過(guò)程中形成“千滾水”。
本設(shè)計(jì)的飲水機(jī)溫控系統(tǒng)主要根據(jù)目前節(jié)能環(huán)保的發(fā)展趨勢(shì)和實(shí)際應(yīng)用的特點(diǎn)和要求,對(duì)現(xiàn)行飲水機(jī)進(jìn)行改進(jìn),采用單片機(jī),利用軟件編程實(shí)現(xiàn)飲水機(jī)的智能保溫節(jié)電。在保溫階段系統(tǒng)采用雙位調(diào)節(jié)進(jìn)行溫度控制,當(dāng)溫度高于保溫溫度時(shí),停止加熱,當(dāng)溫度下降到保溫溫度下2℃時(shí),開(kāi)始加熱,控制水溫在保溫溫度上下小范圍內(nèi)波動(dòng)。雙位調(diào)節(jié)是一種簡(jiǎn)單易行的控制方式,具有成本低廉、可靠性強(qiáng)的特點(diǎn),在控制精度要求不是很高的場(chǎng)合廣泛應(yīng)用。通過(guò)實(shí)驗(yàn)證明該控制方法完全可以滿(mǎn)足系統(tǒng)的使用要求。系統(tǒng)采用1.8寸的TFT彩屏作為顯示部分,利用軟件編程設(shè)置了一個(gè)友好的界面將飲水機(jī)的各項(xiàng)參數(shù)顯示出來(lái),使得用戶(hù)可以根據(jù)彩屏上的提示很方便的通過(guò)按鍵對(duì)相關(guān)參數(shù)進(jìn)行設(shè)定,這樣該系統(tǒng)可以滿(mǎn)足不同環(huán)境下用戶(hù)的使用要求。
本文設(shè)計(jì)的溫控系統(tǒng)具有穩(wěn)定性好、易于操作、性?xún)r(jià)比高的特點(diǎn),將其稍加改裝即可應(yīng)用于其他家用電器的控制系統(tǒng)中。
[1]張毅剛,彭喜元,姜守達(dá),喬立巖.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,2008.
[2]毛學(xué)軍,沙祥.液晶模塊應(yīng)用[M].電子工業(yè)出版社,2010.
[3]靳桅,鄔芝權(quán),李騏,劉全.基于51系列單片機(jī)的LED顯示屏開(kāi)發(fā)技術(shù)(第2版)[M].北京航空航天大學(xué)出版社,2011,4.
[4]汪孝國(guó),王婉麗,祁雙喜.高精度PID溫度控制器[J].電子與自動(dòng)化,2000(5).
[5]劉春蕾.溫度雙位調(diào)節(jié)實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)[J].河北建筑工程學(xué)院學(xué)報(bào),1999(02).
[6]8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)[M].人民郵電出版社,2006.
[7]余永權(quán),汪明慧,黃英.單片機(jī)在控制系統(tǒng)中的應(yīng)用[M].電子工業(yè)出版社,2003.
林奇盛(1992—),男,江西贛州人,現(xiàn)就讀于南昌航空大學(xué)測(cè)試與光電工程學(xué)院,主要研究方向:?jiǎn)纹瑱C(jī)開(kāi)發(fā)與應(yīng)用。