湖北省隨州市第一高級中學 周雪林
能源危機是當前人類社會發展面臨的一個主要問題,因而全社會都應大力提倡節能環保。太陽能熱水器是普通家庭中常見的一種熱水供應設備,節能方便安全,本設計是利用STC12C5A60S2單片機作為控制芯片,結合傳感器、繼電器、電磁閥、小型液晶顯示屏等實現對傳統太陽能熱水器的升級改進,使其具有一定程度的智能化。
整個系統由兩大部分構成。底層系統是由霍爾傳感器、溫度傳感器DS18B20構成的神經網絡;頂層系統由STC12C5A 60S2單片機、繼電器—電磁閥系統、繼電器—加熱電阻系統、時鐘芯片DS1302、1602液晶顯示屏、2*2鍵盤組成,構成了總系統的執行機構和人機交互系統。圖1所示是系統的總體硬件框圖:
圖1 系統的總體硬件框圖
由單片機和傳感器實現的太陽能熱水器自動控制系統是以STC-12C5A 60S2芯片為核心,由2*2矩陣鍵盤、1602液晶顯示、DS18B20溫度傳感器、DS1302時鐘芯片和繼電器—電磁閥、繼電器—加熱電阻等組成。系統的工作原理如下:(1)發生水位變化時,帶動浮子內的磁鐵,通過霍爾傳感器偵測磁鐵的位置,從而得知水位的高低,同時通過發光二極管和液晶屏顯示液位高度,并根據設定的要求,當低于設定水位時單片機控制繼電器,由繼電器接通電磁閥電源,進行加水;當達到設定的最高水位時,繼電器控制電磁閥停止加水。(2)由溫度傳感器測得實時溫度,當水溫低于設定溫度時,由繼電器接通電阻絲電源,進行加熱;當溫度高于設定溫度時,停止加熱。(3)由DS1302時鐘芯片進行計時;(4)由1602液晶屏實時顯示時間、溫度和水位;(5)由鍵盤進行參數設定。
本系統的單片機采用STC12C5A60S2芯片。其中,P0口用于1602液晶屏的數據傳送;P1口用于單片機與各種外圍器件的通訊;P2口用于檢測霍爾傳感器信號、控制電磁閥動作和指示燈顯示;P3口連接一個鍵盤。
本系統采用2*2矩陣鍵盤,占用單片機P3口的4個端口。2*2矩陣鍵盤主要作用是設置溫度和時間。鍵盤及程序的設計任務主要有:按鍵檢測及判斷鍵值。有按鍵按下則進行消抖,并根據鍵值驅動執行機構開啟加熱功能(停止加熱)以及設定時間。
單片機通過對液晶的E、RS、RW等引腳按時序圖進行讀寫操作,使其顯示當前水位,時間、溫度。
時鐘芯片采用DS1302,它通過串口與單片機通訊,通訊只需要三根線:CE,數據線(I/O)和串行時鐘(SCLK)。實時時鐘/日歷提供關于年、月和日的信息。對于不到31天的月份,每月將自動調整,并具有閏年修正功能。芯片具有AM/PM指示器,時鐘能夠以12小時制或24小時制工作。在設計電路時,為了提高抗干擾能力,在設計電路時分別給CE、I/O、SCLK接了10K的上拉電阻。
溫度模塊采用DS18B20溫度傳感器。超小的體積,超低的硬件開銷,抗干擾能力強,測溫精度高。
DS18B20芯片通過的單總線協議依賴于單線端口進行通信。當所有設備通過三態端口或漏極開路端口連接到總線時,控制線應該連接弱上拉電阻。對于DS18B20的電路連接,除了上面描述的傳統外部電源的電路連接圖之外,DS18B20還可以工作在“寄生功率模式”中。下圖顯示了在“寄生電源模式”下工作的DS18B20的電路連接圖。這使得DS18B20能夠在寄生功率模式下工作。它可以收集多個位置的實時溫度信息而無需額外的電源。
實際應用中,因上拉較弱,起控制、輸入輸出的三個端口,容易產生信號串擾,因而與單片機P1口間應接上拉電阻,以便增強信號穩定性;為保證時鐘的可靠性,使用了紐扣電池作為備用電源,輸出電壓為3V,從而保證了系統掉電狀態下能夠繼續工作。
在設計電路時,讓DS18B20與DS1302一點共地。
本系統選用的繼電器,額定工作電壓125VAC/28VDC,工作電流10A,控制電壓5VDC。用它作為電磁閥和發熱電阻的控制元件。
繼電器是一種利用電磁原理控制的開關,它具有輸入回路和輸出回路,常用于自動控制電路中。在繼電器的低壓控制端與繼電器的接觸端之間沒有電氣連接,是通過電磁吸引和機械方式實現接觸控制,從而實現低壓直流控制高壓(DC/AC)的功能。
由于繼電器的低壓控制端的電流相對于單片機I/O口的電流較大,需要使用三極管驅動繼電器吸合。
繼電器的電磁鐵具有電感,在斷電時可能會產生較大的反向電壓,損壞三極管,所以在繼電器的控制端使用二極管來進行放電。
本設計方案采用浮子、磁鐵結合A 3144E型霍爾傳感器來監測水位的方法。當水位達到相應位置是,霍爾元件檢測到磁信號,有控制信號使相應的發光二極管發光,指示水位高低,同時在液晶屏上顯示水位值。應用霍爾效應,并采用半導體集成技術制造磁敏電路,這便是霍爾開關集成電路。它工作時的輸入變量是磁感應強度,輸出的則是一個數字電壓信號。
電源尖峰脈沖會引發噪聲干擾,高頻信號線間也會產生耦合干擾,為解決這些問題,在電源入口處及芯片頂端或底端,接入去耦電容,用于提高系統的穩定性。
圖2 主程序流程圖
本方案在主程序中采用輪詢的方式依次循環執行各模塊程序,本方案要實現的功能,采用這種方式實現,完全可以滿足要求;對于由霍爾傳感器和按鍵給出的信號,也可以考慮采用中斷的方式進行處理,在中斷服務程序中執行相應的指令。
在芯片的驅動程序設計中,要特別注意時序問題,嚴格按照芯片手冊的要求來設計程序,同時在延時問題上,也要注意與所選單片機型號和晶振相對應。還要注意變量的數據類型。
在軟件設計中,上電時完成對單片機、傳感器和1602液晶屏的初始化;然后單片機掃描鍵盤,可以通過鍵盤輸入完成參數的設定;單片機循環采樣各傳感器,將采集到的數據通過1602液晶屏顯示出來;然后依次根據所采集的數據,判斷是否驅動繼電器—電磁閥模塊進行加水(停止加水)或驅動繼電器—加熱模塊進行加熱(停止加熱)。
系統主程序流程圖如圖2所示。
本方案設計一種太陽能熱水器控制系統,能夠使傳統的系統具備一定的智能性。本系統通過調試,實際運行,證明傳感器工作靈敏,系統運行穩定,人機交互性好,基本實現了設計目標,有較好的應用前景。
[1]郭天祥.51單片機C語言教程[M].北京:電子工業出版社,2009,01:342-354.
[2]楊欣,張延強,張鎧麟.實例解讀51單片機完全學習與應用[M].北京:電子工業出版社,2011,04:448-449.
[3]劉佳琪,高敬鵬.Altium Designer 15原理圖與PCB設計教程[M].北京:機械工業出版社,2016,07.
[4]譚浩強.C程序設計[M].北京:清華大學出版社,1999,12.