林建華
(閩南理工學(xué)院,福建 石獅 362700)
在國內(nèi),大部分農(nóng)村地區(qū)普遍使用電風(fēng)扇作為夏天降溫防暑設(shè)備。夏秋季節(jié)白天溫度高,電風(fēng)扇應(yīng)置于高速檔,大風(fēng)量才使人感到?jīng)鏊?;到了夜里,氣溫降低,?dāng)人們?nèi)胨?,?yīng)該逐步減小風(fēng)速,以免使人受涼感冒。雖然電風(fēng)扇都有手動(dòng)調(diào)節(jié)檔位的功能,但必須要人手動(dòng)切換檔速,睡著了就沒辦法了。利用 AT89S52單片機(jī)設(shè)計(jì)智能溫控電風(fēng)扇控制系統(tǒng),能解決深夜當(dāng)人們熟睡時(shí)因溫度下降而導(dǎo)致著涼,或是從睡夢中醒來去控制電風(fēng)扇風(fēng)速的問題。本控制系統(tǒng)實(shí)時(shí)顯示檢測溫度值,并根據(jù)用戶設(shè)定的上、下限溫度值自動(dòng)在相應(yīng)溫度下作出高速檔、低速檔、停止的動(dòng)作,從而實(shí)現(xiàn)智能控制電風(fēng)扇的風(fēng)速目的,形成一個(gè)經(jīng)濟(jì)的、節(jié)能的智能溫控系統(tǒng)。
系統(tǒng)設(shè)計(jì)的總框圖如圖1所示。
單片機(jī)通過檢測DS18B20采集的溫度作相應(yīng)處理并送數(shù)碼管顯示當(dāng)前溫度值,同時(shí)當(dāng)前顯示溫度值與用戶設(shè)定的上、下限溫度值進(jìn)行比較,根據(jù)比較的結(jié)果控制高速檔、低速檔、停止檔相對應(yīng)的繼電器的通斷,從而控制電風(fēng)扇的電動(dòng)機(jī)接線方式,實(shí)現(xiàn)對風(fēng)扇風(fēng)速的控制。硬件電路設(shè)計(jì)包括單片機(jī)主控電路、數(shù)碼管顯示電路、溫度采集、蜂鳴器、繼電器控制電路、+5V供電電源等。主程序編程用來實(shí)現(xiàn)對溫度的檢測、數(shù)碼顯示、蜂鳴器、繼電器控制等處理功能。
圖1 系統(tǒng)結(jié)構(gòu)框圖
AT89S52單片機(jī)作為本系統(tǒng)的控制核心,用于控制溫度采集、數(shù)碼管顯示、蜂鳴器、繼電器控制及用戶上下限溫度值設(shè)置鍵。在本系統(tǒng)設(shè)計(jì)電路中,溫度采集定義 DS18B20的DQ端口為P3.3;數(shù)碼管顯示電路定義P0口連接七段數(shù)碼管,P2口作為數(shù)碼管的位選信號;P1.0為手動(dòng)檔電源開關(guān),P1.1為自動(dòng)檔電源開關(guān),P1.2為高速檔,P1.3為低速檔,P1.4 為顯示值減1,P1.5為顯示值加1, P1.6 為設(shè)置鍵;P3.0為蜂鳴器報(bào)警等。
2.1.1 溫度采集
溫度采集電路主要采用溫度傳感器DS18B20作為感測溫度的核心元件,它可把采集的溫度信號轉(zhuǎn)換成數(shù)字量,送單片機(jī)處理后,輸出送數(shù)碼管顯示當(dāng)前溫度值。DS18B20的DQ端口接P3.3口,如圖2所示。
圖2 溫度采集
2.1.2 數(shù)碼管顯示電路
數(shù)碼管顯示電路利用8個(gè)共陽數(shù)碼管、PNP三極管、電阻構(gòu)成。單片機(jī)的P0口作為段碼輸入,P2口作為位選,并用8550三極管做驅(qū)動(dòng)。P0口做I/O口時(shí)要加上拉電阻,所以給P0各端口加一個(gè)10KΩ的電阻。為了防止燒壞數(shù)碼管,給數(shù)碼管各段各加一個(gè)220Ω的限流電阻。顯示時(shí)數(shù)據(jù)通過P0口送給數(shù)碼管顯示,通過P2口對數(shù)碼管進(jìn)行位選,數(shù)碼管被逐位掃描顯示其當(dāng)前溫度值。如圖3所示,
圖3 數(shù)碼管顯示電路
2.1.3 用戶上下限溫度值設(shè)置
用戶上下限溫度值設(shè)定由單片機(jī)的P1.4、P1.5、P1.6口外接的3個(gè)點(diǎn)動(dòng)按鈕S1、S2、S3來完成,如圖3所示。S3為設(shè)置鍵,S2為顯示溫度值加1,S1為顯示溫度值減1。當(dāng)按下設(shè)置鍵S3,進(jìn)入上限溫度值設(shè)置項(xiàng),此時(shí)按下S2鍵,溫度值加1,長按S2不放可實(shí)現(xiàn)快速加1,按下S1鍵,上限溫度值減1,長按S1不放可實(shí)現(xiàn)快速減1。再一次按設(shè)置鍵S3,進(jìn)入下限溫度值設(shè)置項(xiàng),此時(shí)按S2、S1鍵,可對下限值加 1或減 1。上限溫度值和下限溫度值的設(shè)置范圍為-9℃~99℃,可以滿足一般使用要求。再按一次設(shè)置鍵S3,可切換到手動(dòng)控制狀態(tài),此時(shí)數(shù)碼管顯示的是當(dāng)前溫度值,這時(shí)電風(fēng)扇切換到手動(dòng)控制模式。再次按下設(shè)置鍵 S3,又切換到溫控自動(dòng)控制,或按接P1.7腳的S4按鍵,也可以從手動(dòng)控制切換到溫控模式。
2.1.4 繼電器控制電路
繼電器控制電路由單片機(jī)的 P1.0~P1.3控制,如圖 4所示。上電默認(rèn)為智能溫控模式,電風(fēng)扇一通電,P1.1輸出低電平,Q11導(dǎo)通,繼電器K2吸合,K1釋放。單片機(jī)自動(dòng)檢測溫度傳感器采集的溫度信號轉(zhuǎn)換成數(shù)字量,送數(shù)碼管顯示,并與用戶設(shè)置的上、下限溫度值進(jìn)行比較,當(dāng)前顯示溫度值高于用戶設(shè)定的上限溫度值時(shí),P1.2輸出低電平,Q12導(dǎo)通,繼電器K3吸合,電源接通電風(fēng)扇電機(jī)的高速檔;當(dāng)前顯示溫度值介于用戶所設(shè)的上、下限溫度值時(shí),P1.3輸出低電平,Q13導(dǎo)通,繼電器K4吸合,電源接通電機(jī)的低速檔;當(dāng)前顯示溫度值低于下限溫度值時(shí),關(guān)閉風(fēng)扇。
當(dāng)要切換到手動(dòng)控制時(shí),按S3設(shè)置鍵3次,從智能溫控模式切換到手動(dòng)控制,P1.0輸出低電平,Q10導(dǎo)通,繼電器K1吸合,K2釋放。此時(shí)可以通過調(diào)節(jié)定時(shí)器及調(diào)速檔開關(guān)控制電風(fēng)扇的風(fēng)速。按下S4時(shí),又可切換到智能溫控模式。
圖4 繼電器控制電路
單片機(jī)+5V供電電源采用LM7805集成穩(wěn)壓器,220V電源經(jīng)變壓器降壓、整流、濾波后送入LM7805穩(wěn)壓,輸出端接一個(gè)470uF和0.1uF電容濾除紋波,得到+5V穩(wěn)壓電源。電路如圖5所示。
圖5 供電電源電路
單片機(jī)首先對DS18B20進(jìn)行復(fù)位和檢測,當(dāng)檢測到傳感器存在時(shí),發(fā)出溫度轉(zhuǎn)換命令和讀取溫度命令,將從DS18B20讀取的二進(jìn)制溫度值轉(zhuǎn)換為七段碼在數(shù)碼管上顯示出來。顯示功能由溫度顯示子程序?qū)崿F(xiàn),數(shù)碼管逐位掃描顯示當(dāng)前溫度值。用戶可根據(jù)需要自行設(shè)置風(fēng)速檔的切換上、下限溫度值,硬件設(shè)計(jì)上可通過3個(gè)按鍵,由按鍵檢測函數(shù)程序提供軟件支持。用戶設(shè)定的上、下限溫度值均保存到DS18B20的EEROM內(nèi),在單片機(jī)掉電后仍然保存設(shè)定值,再次上電時(shí)從DS18B20的EEROM中讀取上次設(shè)定的上、下限溫度值。用戶要實(shí)現(xiàn)根據(jù)當(dāng)前溫度實(shí)時(shí)的控制電風(fēng)扇的風(fēng)速,需要在程序中不斷的判斷當(dāng)前溫度值是否超過或低于設(shè)定的上、下限溫度值范圍,此部分功能由溫度比較程序來完成。在執(zhí)行程序不斷將當(dāng)前溫度和設(shè)定動(dòng)作溫度進(jìn)行比較判斷,控制高速檔、低速檔相應(yīng)繼電器的吸合與釋放,從而實(shí)時(shí)控制電風(fēng)扇的風(fēng)速。
根據(jù)已定義的單片機(jī)各端口及設(shè)計(jì)的硬件電路,編寫程序,并利用單片機(jī)Proteus ISIS和Keil軟件對智能溫控電風(fēng)扇控制進(jìn)行調(diào)試、仿真測試,直至實(shí)現(xiàn)其控制要求。
然后按已設(shè)計(jì)的硬件電路圖對各單元電路進(jìn)行安裝與焊接,并確保電路安裝正確無誤。用燒寫器將KEIL軟件對應(yīng)源程序編譯生成的.HEX文件寫入 AT89S52單片機(jī)芯片中。組裝整個(gè)系統(tǒng),將單片機(jī)插入到目標(biāo)板中,進(jìn)行整機(jī)的調(diào)試。
風(fēng)扇接上電源,如數(shù)碼管顯示當(dāng)前溫度值22.5℃-L,表明電風(fēng)扇處于低速檔運(yùn)行。按設(shè)置鍵S3及S2、S1鍵可重新設(shè)置上、下限溫度值,如果將上限溫度值設(shè)為25.0℃,將下限溫度值設(shè)為23.0℃。確定后,因當(dāng)前溫度值低于下限溫度值,電風(fēng)扇停止,數(shù)碼管顯示 22.1℃-P。然后用手捏著DS18B20,顯示溫度逐步上升,當(dāng)達(dá)到下限溫度值23℃時(shí),繼電器K4吸合,電風(fēng)扇接通低速檔,數(shù)碼管顯示23.X℃-L。溫度繼續(xù)的上升,當(dāng)高于25℃時(shí),繼電器K3吸合,電風(fēng)扇切換到高速檔,數(shù)碼管顯示25.X℃-H。當(dāng)手移開DS18B20,溫度下降,低于 25.0℃時(shí),又切換到低速檔。當(dāng)?shù)陀?3.0℃時(shí),關(guān)閉電風(fēng)扇。
按設(shè)置鍵S3三次,可切換到手動(dòng)控制模式。此時(shí)數(shù)碼管顯示當(dāng)前溫度值。此時(shí)可通過手動(dòng)調(diào)節(jié)定時(shí)器和調(diào)速開關(guān)控制電風(fēng)扇的風(fēng)速。再按S4時(shí),又切換到智能溫控模式。
經(jīng)實(shí)驗(yàn)測試表明,該系統(tǒng)實(shí)現(xiàn)了預(yù)期的控制功能。
該系統(tǒng)利用 AT89S52單片機(jī)實(shí)現(xiàn)的智能溫控電風(fēng)扇控制系統(tǒng),性能可靠,控制準(zhǔn)確,成本低,解決了人們手動(dòng)操作的麻煩,具有重要的應(yīng)用價(jià)值。如將電路和程序稍作修改,還可以實(shí)現(xiàn)其他一些控制功能,如大棚溫度控制、電動(dòng)機(jī)溫度檢測、加熱爐、熱處理爐和鍋爐溫度檢測等,系統(tǒng)移植性強(qiáng),控制方便。
[1]劉綠山,劉建群,李仕勇,等.基于AT89S52單片機(jī)的溫控系統(tǒng)[J].微計(jì)算機(jī)信息,2007,(17).
[2]吳金戍,沈慶陽,郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[3]榮俊昌.新型電風(fēng)扇原理與維修[M].北京:高等教育出版社,2004.
[4]明德剛.DS18B20在單片機(jī)溫控系統(tǒng)中的應(yīng)用[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,(1).
[5]馬云峰.單片機(jī)與數(shù)字溫度傳感器DS18B20的接口設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2007,(4).
[6]孟武勝,李亮.基于AT89C52單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)[J].微電機(jī),2007,(3).