何淑賢
(晉中學院信息技術與工程學院,山西晉中 030600)
隨著電子技術的進一步發(fā)展,單片機及溫度傳感器濕度傳感器等成本降低,單片機分析控制溫度濕度的技術逐漸成熟.
本研究用單片機控制進行溫度和濕度信息的采集、分析及控制信號的輸出.系統(tǒng)以單片機STC89C52平臺為基礎,搭建對溫度傳感器DS18B20和濕度傳感器HR31以及模數(shù)轉換芯片ADC0804的控制電路,然后設計算法實現(xiàn)具體的信息采集和分析,并輸出控制信號,最終實現(xiàn)溫度和濕度的智能調節(jié).
針對溫度和濕度兩種非電信號量,需要先利用傳感器將其轉換為電信號,再由集成電路分析處理,進而實現(xiàn)溫度和濕度調節(jié);然后通過增加屏幕顯示和按鍵控制調節(jié),實現(xiàn)自由控制室內溫度和濕度.
以STC89C52單片機為核心,對單片機設計算法以實現(xiàn)對溫度和濕度數(shù)據(jù)的分析及調節(jié)控制,采用按鍵控制設備運行,采用顯示屏輸出運行結果.為實現(xiàn)溫度濕度控制功能,需圍繞單片機構建溫度采集模塊采集溫度信息,構建濕度采集模塊采集濕度信息,這兩種信息作為單片機分析和控制的依據(jù),另外還需構建顯示輸出模塊,用以顯示系統(tǒng)的運行狀況,構建鍵盤輸入模塊控制系統(tǒng)狀態(tài)的運行,最后提供控制結果的輸出端口用來直接控制設備調節(jié)溫度和濕度,設計框架如圖1所示.
圖1 設計框架圖
設計以8051系列單片機為核心,對單片機設計算法實現(xiàn)對溫度濕度數(shù)據(jù)的分析和調節(jié)控制[1].由于單片機P0口是接在兩個三極管之間(與P1、P2、P3口不同),只有下拉能力,高電平輸出沒有電流,在高電平時表現(xiàn)為高阻態(tài),需要加上上拉電阻達到能輸出高電平和低電平的狀態(tài),若利用P0口需要加上拉電阻.
系統(tǒng)工作過程中實時檢測按鍵事件和溫度濕度的值,并且分析檢測到的信息及輸出顯示信息和控制信息,然后分別調用溫度和濕度信息控制模塊達到分析并且控制溫度和濕度的目的.
溫度采集模塊需要把溫度量轉化成數(shù)字電信號.溫度傳感器有四種主要類型:熱電偶型、熱敏電阻型、電阻溫度檢測器(RTD)和IC溫度傳感器.相比IC溫度傳感器前三者結構簡單,只能通過外圍電路輸出模擬信號,而IC溫度傳感器是一塊可以測量溫度的集成電路芯片,部分芯片直接集成了模數(shù)轉換電路,可以不經(jīng)過模數(shù)轉換電路輸出數(shù)字信號.考慮到電阻溫度檢測器需要經(jīng)過模數(shù)轉換模塊的轉換才能輸出數(shù)字信號,而部分IC溫度傳感器可以直接輸出數(shù)字信號,可省去模數(shù)轉換,所以采用IC溫度傳感器.
采用的IC溫度傳感器是DS18B20數(shù)字溫度傳感器.DS18B20的測量范圍是-55℃到+125℃,測量誤差為0.5℃,足夠室內溫度檢測的使用[2].其工作電壓為3 v到5.5 v,與單片機供電電壓相符合.
DS18B20的電路有三種:寄生電源供電方式、寄生電源強上拉供電方式和DS18B20的外部電源供電方式,第一種會有寄生供電電量不足增大誤差的可能,第二種會多占用一個I/O口,故采用第三種的外部電源供電方式.
DS18B20溫度采集電路與單片機P2.2口直接以單總線方式連接,單片機控制P2.2口的電平時序變化與DS18B20交互,硬件由讀數(shù)據(jù)、寫數(shù)據(jù)和初始化方法操作實現(xiàn)控制.讀數(shù)據(jù)的方法為先拉低總線大約4 us再釋放總線,然后延時8 us開始讀數(shù)據(jù),最后再延時60 us讀取下一位數(shù)據(jù),這樣總共讀取8次.寫數(shù)據(jù)的方法為先拉低總線4 us,再發(fā)送1位數(shù)據(jù),延時60 us后釋放總線,接著再發(fā)送下一位數(shù)據(jù),如此發(fā)送8次.初始化通過寫數(shù)據(jù)操作發(fā)送命令設置傳感器具體工作參數(shù)[3].
濕度采集模塊需要完成濕度模擬信號向數(shù)字電信號的轉換.限于濕度對物體的影響集中體現(xiàn)在表面的特點,濕度傳感器有電容式、電阻式等類型.本文采用含濕敏電阻HR31的濕度傳感器檢測模塊,模塊提供四個接口,包括供電端、接地端、TTL信號輸出端和模擬信號輸出端,模塊使用5V供電,帶靈敏度調節(jié)旋鈕,方便進行濕度校正.
模數(shù)轉換模塊采用ADC0804芯片,HR31濕度傳感器檢測模塊由接地端和模擬信號輸出端兩腳提供的模擬信號,信號從ADIN輸入,經(jīng)ADC0804轉換成數(shù)字信號后從輸出到單片機.
ADC0804主要由模數(shù)轉換方法和讀轉換結果的方法控制操作,通過這兩個操作將HR31濕度模塊采集到的模擬電壓量轉換為八位二進制的數(shù)字量[4].具體設計為:首先進行模數(shù)轉換,方法是先置片選腳CS為低電平使芯片工作,再使AD轉換起動控制腳WR由高電平轉為低電平,再轉為高電平啟動模數(shù)轉換,延遲一段時間后置片選CS腳為高電平,轉換結束.其次進行讀轉換結果的操作,方法是置片選腳CS和讀數(shù)據(jù)控制腳RD為低電平,數(shù)據(jù)輸出口輸出的數(shù)據(jù)即為轉換結果,把此結果存入一個變量,置片選腳CS和讀數(shù)據(jù)控制腳RD為高電平停止讀取,最后把得到的二進制數(shù)據(jù)轉換為十進制數(shù).因為得到的十進制數(shù)與ADC0804模擬信號輸入口電壓成線性關系,而濕度傳感器輸出電壓值與濕度物理量在適用范圍內也近似成線性關系,所以所得的十進制值與濕度物理量可視為線性關系,關系函數(shù)通過參照標準濕度值進行校正求得.
本模塊包含溫度分析模塊、濕度分析模塊、溫度控制模塊、濕度控制模塊.
通過比較當前溫度(濕度)值與標準溫度(濕度)值的關系輸出控制信息,進而控制制冷、產(chǎn)熱設備調節(jié)溫度接近標準溫度,或控制加濕、除濕設備調節(jié)濕度接近設定的標準濕度,當調節(jié)環(huán)境到標準溫度和標準濕度時關閉輸出控制信號,此時溫度和濕度會逐漸偏離標準值,進而觸發(fā)系統(tǒng)重新打開輸出控制信號繼續(xù)調節(jié)溫度和濕度.假若設定的標準溫度(濕度)值是個數(shù)值而非區(qū)間,這會使得溫度和濕度值在標準值附近頻繁變化,制冷、產(chǎn)熱設備或加濕、除濕設備也會頻繁啟動和關閉,這對設備有害.因此將標準轉換為以其為中心的區(qū)間,使得溫度(濕度)在一個較小的區(qū)間里變化時不會改變制冷、產(chǎn)熱設備(或加濕、除濕設備)的運行狀態(tài),進而延長設備壽命.
具體設計算法如下:
初始化變量now,var,std,X,ctrlOut
maxStd=std+X
minStd=std-X
ifnow>maxStd then
ctrlOut=2
elseifnow>std and now<=maxStd then
IfctrlOut==1 then
ctrlOut=0
endif
elseifnow
IfctrlOut==2 then
ctrlOut=0
endif
else ctrlOut=1
endif
其中now、std在調用此模塊時取得參數(shù),輸出結果為ctrlOut.根據(jù)mark和ctrlOut最終控制相應設備調節(jié)環(huán)境.
輸出控制采用單片機控制繼電器,以繼電器為開關由單片機控制相應設備調節(jié)溫度濕度.
按鍵使用獨立鍵盤,按動后會引起對應線路(單片機I/O口)的電位變化,對這種變化進行檢測即可實現(xiàn)按鍵信息的采集.對按鍵狀態(tài)掃描時,因為有可能信號干擾,所以當掃描到某個按鍵按下后和再延遲10ms重新判斷此按鍵是否按下,若結果還是按下,則置按鍵狀態(tài)為此按鍵編號,將按鍵信息由此值傳送.
按鍵有編碼式和非編碼式之分,計算機鍵盤的按鍵屬于編碼式按鍵,其內部通過微處理器將按鍵信息轉換為一定的編碼值實現(xiàn)按鍵功能,適用于按鍵數(shù)量多信號線少時,非編碼按鍵則是簡單地通過按鍵改變信號線電平,結構簡單[5].本系統(tǒng)按鍵需要4個,即復位鍵RST、設置鍵SET、增加鍵+和減少鍵-.復位鍵在單片機的復位電路里給出,這里不予考慮,剩下三個按鍵采用非編碼式.非編碼式按鍵分為獨立式和陣列式,這里只有三個按鍵,采用獨立式按鍵方式.
對三個信號線設置高電平,通過按動按鍵使其接通低電平,實現(xiàn)電平改變,對單片機設計算法檢測這種電平變化,實現(xiàn)按鍵信息的輸入.
顯示屏采用LCD1602字符型液晶屏,LCD1602屏幕直接與單片機的P3.4、P3.5及P0口相連,單片機控制這幾個腳的電平按一定時序變化實現(xiàn)屏幕顯示,在P0連接的數(shù)據(jù)口輸入數(shù)據(jù),然后讓使能端由高電平變?yōu)榈碗娖?,當P3.5連接的寄存器選擇腳為高電平時實現(xiàn)寫數(shù)據(jù)操作,為低電平時實現(xiàn)寫命令操作.LCD1602是通過寫數(shù)據(jù)和寫命令兩個操作把數(shù)據(jù)寫入相應寄存器實現(xiàn)顯示的,由這兩個操作即可在屏幕上共兩行32個位置上顯示字符.
采用軟件和硬件相結合的方法,以測試性能.前期測試以在仿真軟件環(huán)境下測試為主,后期測試則主要在單片機硬件環(huán)境下進行.
仿真軟件采用Proteus7 Professional.在Proteus測試程序能正確運行后將程序下載入單片機,接通單片機電源進行硬件環(huán)境的測試.測試結果如表1和表2所示.
由表1和表2可知,溫度和濕度基本能正確顯示,當超出設定溫度和濕度范圍時能啟動制冷/產(chǎn)熱的設備或加濕/除濕的設備進行調節(jié).在測試過程中發(fā)現(xiàn)需在時間延遲的設計上作調整,以解決系統(tǒng)反應速度問題.
表1 系統(tǒng)溫度部分測試
表2 系統(tǒng)濕度部分測試
本研究設計建立了以單片機為核心的溫度和濕度調節(jié)系統(tǒng).其中溫度采集電路和濕度采集電路,能夠分別向單片機提供溫度和濕度信息,而對收集到的溫度和濕度信息的在單片機核心上成功地完成了分析和控制信號的輸出,另外通過按鍵調控與自動控制相結合實現(xiàn)了溫濕度智能調控.
[1]吳永.基于網(wǎng)絡的單片機多點溫度采集系統(tǒng)的設計[J].計算機測量與控制,2010,18(4):959~960.
[2]呂俊亞.一種基于單片機的溫度控制系統(tǒng)設計與實現(xiàn)[J].計算機仿真,2012,29(7):230~233.
[3]李麗娜,柳洪義,許時揚.基于虛擬儀器的PCR芯片智能溫控系統(tǒng)開發(fā)[J].計算機工程與設計,2009,30(5):1223~1228.
[4]戴衛(wèi)軍,唐燕妮.基于DSP恒溫水浴溫度復合智能控制方法[J].計算機測量與控制,2009(3):501~503.