基于DSl8820的溫控系統(tǒng)冷熱調(diào)節(jié)設(shè)計
隨著我國經(jīng)濟(jì)的發(fā)展,科學(xué)研究深入推進(jìn),溫度監(jiān)測與控制系統(tǒng)在工業(yè)設(shè)計、智能儀表、日常家用電器等領(lǐng)域的應(yīng)用越為廣泛,基于單片機(jī)設(shè)計的電子產(chǎn)品有著廣闊的應(yīng)用市場和發(fā)展前景。
DSl8820是Dallas公司生產(chǎn)的一款數(shù)字溫度傳感器,超小體積,超低硬件開銷,抗干擾能力強(qiáng),精度高,附加功能強(qiáng)。DSl8820的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出集成于,一個芯片上,單總線數(shù)據(jù)通信,二進(jìn)制輸出,分辨率最高可達(dá)12位,檢測溫度范圍為-55~+125 ℃,具有限溫報警功能。同時,DSl8820內(nèi)置EEPROM、64位光刻ROM,支持多點組網(wǎng),根據(jù)需要把多個DSl8820并聯(lián)在唯一的三總線上,便可實現(xiàn)組網(wǎng)多點測溫,便于溫控系統(tǒng)的擴(kuò)展和升級。
1 系統(tǒng)工作原理
為實現(xiàn)被控對象溫度的冷熱調(diào)節(jié),所設(shè)計的溫度控制系統(tǒng)以AT89S51單片機(jī)作為控制核心,包括溫度采樣模塊、溫度顯示模塊、執(zhí)行模塊、過欠溫指示模塊以及小鍵盤等外同電路。系統(tǒng)時鐘頻率為12 MHz,采用智能集成化器件DSl8820來監(jiān)測被控對象,將溫度值轉(zhuǎn)換為帶符號的數(shù)字信號,通過單總線輸出,實現(xiàn)了溫度采集、轉(zhuǎn)換與變送的功能,有利于簡化電路。考慮到單片機(jī)的直流輸出驅(qū)動能力,采用三極管、74LS244和74LS07來驅(qū)動相應(yīng)的外圍集成電路。溫度數(shù)據(jù)通過4個并行共陽極的LED動態(tài)顯示,并自行搭建小鍵盤來實現(xiàn)被控對象目標(biāo)溫度的設(shè)定。執(zhí)行模塊利用固態(tài)繼電器SSR進(jìn)行光電隔離,實現(xiàn)小功率直流電控制220 V交流電通斷,使得控制加熱管通斷、風(fēng)扇啟停的繼電器帶電或失電,并采用大功率的風(fēng)扇和加熱管以實現(xiàn)有效的溫度冷熱調(diào)節(jié)。系統(tǒng)中采用不同顏色的LED燈指示系統(tǒng)的工作運(yùn)行狀態(tài),紅色發(fā)光二極管亮表示溫度過高或過低報警,綠色發(fā)光二極管亮則表示系統(tǒng)工作正常。系統(tǒng)組成如圖1所示。
在核心控制處理模塊AT89S51單片機(jī)中,為了有效抑制從DSl8820傳來的溫度數(shù)字信號的隨機(jī)誤差,提高系統(tǒng)的測量精度和抗干擾性,在AT89S51單片機(jī)的控制程序中加入數(shù)字濾波子程序。數(shù)字濾波平滑處理盡可能消除系統(tǒng)隨機(jī)誤差的影響,從軟件方面提高系統(tǒng)的抗干擾能力。并利用MATIAB對測溫數(shù)據(jù)進(jìn)行擬合,從而進(jìn)一步校正測量溫度值,使測量值更逼近精確值。
2 系統(tǒng)硬件設(shè)計
2.1 電源及溫度顯示模塊
為避免信號之間的串?dāng)_,采用5 V直流電源分別為單片機(jī)、鍵盤、固態(tài)繼電器控制模塊、8段數(shù)碼管供電,并提供上電復(fù)位電壓。同時為風(fēng)扇和400 W加熱器提供220 V交流電。
溫度顯示模塊采用4個8段數(shù)碼管顯示溫度。為穩(wěn)定顯示,采用總線延時的動態(tài)顯示方式。驅(qū)動電路和位選分別由74IS244、74LS07搭建組成。
2.2 小鍵盤模塊
小鍵盤模塊自行搭建,由復(fù)位鍵、確認(rèn)鍵、加1鍵和TAB鍵等4個按鍵組成。鍵盤電路簡單明了,滿足設(shè)定被控對象目標(biāo)溫度的人機(jī)交互要求。各個按鍵的功能說明如表1所示。
2.3 溫度數(shù)據(jù)采集
DSl8820采用單總線專用技術(shù),通過I/O端口線與單片機(jī)相接,無須經(jīng)過其他變換電路便可直接輸出被測溫度值(12位二進(jìn)制數(shù),含符號位)。其引腳功能分別為:VDD引腳接工作電源,當(dāng)工作于寄生方式時,此引腳必須接地;DQ引腳用于數(shù)據(jù)輸入/輸出;GND引腳接地。
在該系統(tǒng)中DSl8820與單片機(jī)的接口電路,如圖2所示,VDD經(jīng)1 kΩ的上拉電阻與外部電源相接,GND接地,DQ通過單總線與單片機(jī)P0.0口相連。
DSl8820測量溫度與輸出溫度之間的關(guān)系如表2所示,輸出溫度為12位的二進(jìn)制數(shù),存儲在DSl8820兩個8位的RAM中,二進(jìn)制數(shù)的前5位是符號位。
2.4 固態(tài)繼電器驅(qū)動模塊
本設(shè)計中選用交流型固態(tài)繼電器SSR,它是一種輸入控制電流小、帶光電隔離器的無觸點開關(guān)。通過控制SSR輸入端直流電的通斷便可控制輸出端交流電的通斷,而且啟動性能平穩(wěn),對電網(wǎng)輻射干擾小。固態(tài)繼電器控制電路見系統(tǒng)總電路圖(圖2),在負(fù)載端由100 Ω和0.1μF組成串接電路,用于對風(fēng)扇、加熱管進(jìn)行過電壓保護(hù)。
2.5 AT89S51單片機(jī)控制模塊
AT89S5l是整個系統(tǒng)的控制核心,其內(nèi)置Flash ROM,用于存放用戶程序。DSl8820所感測的溫度數(shù)字信號和用戶目標(biāo)溫度作為輸入信號,經(jīng)控制程序處理后發(fā)出相應(yīng)的控制信號,顯示系統(tǒng)工作狀態(tài)、被控對象溫度值,以及控制SSR直流端的通、斷電,從而控制風(fēng)扇、加熱管的通斷電,實現(xiàn)被控對象溫度的冷熱調(diào)節(jié)??傠娐穲D(圖2)中雖然給出DSl8820與單片機(jī)的接口電路、固態(tài)繼電器控制電路,但由于DSl8820和執(zhí)行設(shè)備設(shè)置在被控對象現(xiàn)場,因而在實際中要留出相應(yīng)的信號傳輸線。
3 系統(tǒng)軟件設(shè)計
軟件部分采用程序模塊化設(shè)計,便于各個功能的調(diào)試和實現(xiàn)。系統(tǒng)軟件程序主要由主程序、功能實現(xiàn)和運(yùn)算控制3個模塊組成。
3.1 主程序模塊
主程序模塊采用循環(huán)查詢直至中斷退出,以達(dá)到溫控系統(tǒng)冷熱自動控制的目的。主程序流程如圖3所示。
3.2 運(yùn)算控制模塊
運(yùn)算控制模塊包括數(shù)字濾波、PID算法、溫度傳感器控制3個子程序。數(shù)字濾波由限速濾波實現(xiàn),限速濾波能充分利用每一個采樣值,保證了采樣的實時性和采樣值變化的連續(xù)性。限速濾波子程序流程如圖4所示。
PID算法由積分分離PID算法實現(xiàn),采用積分分離的方法,在被控量開始監(jiān)控時取消積分作用,在溫度值接近目標(biāo)值時才產(chǎn)生積分作用,有效降低系統(tǒng)啟、停次數(shù)頻繁給系統(tǒng)帶來的振蕩。積分分離PID算法為:
式中,Y(K)為溫度的目標(biāo)設(shè)定值,C(K)為經(jīng)數(shù)字濾波后的溫度測量值,△Y為設(shè)定的最大允許偏差值。根據(jù)此算法思想可用匯編語言編程實現(xiàn)積分分離PID算法。
DSl8820控制子程序按照DSl8820的通信協(xié)議編制,包括DSl8820初始化,DSl8820讀、寫控制子程序,分別按照相應(yīng)的規(guī)則說明進(jìn)行編程實現(xiàn)。
3.3 功能實現(xiàn)模塊
功能實現(xiàn)模塊包括溫度值設(shè)置、溫度顯示、固態(tài)繼電器通斷控制以及系統(tǒng)運(yùn)行狀態(tài)顯示等子程序,其中在溫度顯示子程序中要完成各個位置段碼的調(diào)用、數(shù)碼管的選通以及數(shù)據(jù)總線的穩(wěn)定(一般采用延時幾ms實現(xiàn))。
4 系統(tǒng)調(diào)試
系統(tǒng)調(diào)試主要進(jìn)行PID參數(shù)的整定和溫度值的系統(tǒng)誤差校正。PID參數(shù)及系統(tǒng)其它參數(shù)的整定首先采用經(jīng)驗值,再逐個細(xì)調(diào),以滿足控制精度要求。根據(jù)表3的實驗數(shù)據(jù),利用MATLAB進(jìn)行一維曲線擬合,校正系統(tǒng)誤差,從而得到更準(zhǔn)確的測量數(shù)據(jù)。
MATLAB擬合過程和結(jié)果如圖5所示。圖5中“O”表示(檢測值,標(biāo)準(zhǔn)值),“*”表示(檢測值,擬合值),一維曲線擬合方程為:y=0.994 8x-O.399 6,經(jīng)數(shù)字濾波后的采樣值再采用此方程處理便可得到更為精確的測量值。
5 結(jié)束語
本文從應(yīng)用角度出發(fā),給出了溫控系統(tǒng)冷熱調(diào)節(jié)詳細(xì)的硬件和軟件設(shè)計,充分利用DSl8820單總線測溫的準(zhǔn)確性和便捷性,并使用限速濾波、積分分離PID算法、MATLAB一維曲線擬合等方法來提高系統(tǒng)的可靠性和測量值的精確性。但信號傳輸線的抗干擾、鍵盤按鍵消抖等方面還不夠完善,而且采用MATLAB進(jìn)行處理的實驗數(shù)據(jù)采樣不夠充分,未考慮在測量過高或過低溫度時的溫度漂移情況,因此系統(tǒng)的設(shè)計有待進(jìn)一步的深入與完善。