基于MXT8051的濕度、溫度以及CO濃度自動調(diào)節(jié)系統(tǒng)
直流風扇控制主回路
本文引用地址:http://cafeforensic.com/article/110411.htm直流風扇控制主回路采用MC34152驅(qū)動BUCK電壓轉(zhuǎn)換電路,寫入MXT8051的PWM寄存器的值變可以調(diào)節(jié)PWM的占空比,從而控制輸出到DC風扇的電壓而達到控制風扇出風量的目的??刂撇捎瞄_環(huán)控制,有9檔,分別是10%,20%......90%的占空比。本系統(tǒng)采用了MXT8051的PWM1口。電路如圖4所示。
溫濕度和CO濃度檢測
溫濕度檢測采用DHT11, DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器, 包括一個電阻式感濕元件和一個NTC測溫元件。它通過單線制串行接口與MCU進行通訊, 每一bit數(shù)據(jù)都以50ms低電平時隙開始,高電平的長短決定了數(shù)據(jù)位是零還是1,26ms~28ms為0,70ms為1。因此必須要采用計時器以準確計時以便分辨出數(shù)據(jù)位的值。這里DHT11的單線制串行接口連接到MXT8051的INT1口。輸出低電平到MXT8051的INT1,中斷觸發(fā)可設為下降沿觸發(fā)。計時采用MXT8051的TIMER1方式2 8位自動重裝載模式,TMOD寄存器的GATE=1,計數(shù)器時鐘采用系統(tǒng)時鐘以便可達到1ms的精度。當TR1=1和INT1同時為1時開始計數(shù)。INT1中斷服務程序中讀出TL1的度數(shù)即為高電平脈沖的寬度,通過讀取此脈沖寬度時間便可判斷數(shù)據(jù)位的值。
CO濃度檢測采用TGS2442,負載電壓采用AIN1進行電壓的AD轉(zhuǎn)換。TGS2442脈沖輸入的預熱控制采用GPIO的P0_5、P0_6。由于脈沖的周期為1s,精度為1ms,所以可以通過軟件延遲的方式去計算延遲時間而無需占用寶貴的計時器資源。
人機接口以及通訊
鍵盤采用3*4中斷掃描,行線接INT2~INT4,列線接P1_0~P1_3。P1_0~P1_3先拉低,當有按鍵輸入時產(chǎn)生相應中斷,判斷得出行號,然后進行掃描以得出列號。
由于MXT8051帶LCD驅(qū)動,所以節(jié)省了LCD驅(qū)動。采用開發(fā)板帶的LCD顯示器進行顯示。
至于通訊部分,為了減輕MXT8051負擔而只負責采集數(shù)據(jù),進行將采集的數(shù)據(jù)通過RS232傳輸?shù)絇C,然后PC端進行處理。由于MXT8051帶有UART,通訊芯片采用常用的MAX232。
主程序流程圖
軟件設計的核心在于電壓電流的檢測以及開關相角的控制算法。開關相角控制算法采用PID算法和軟啟動控制。MXT8051的外部時鐘達到11.059MHz時,加上AD轉(zhuǎn)換的時間及開關延遲等延遲時間,控制的反應速度應該也能滿足控制精度的要求。總軟件流程圖如圖5所示。
結(jié)語
本文給出的基于MXT8051的自動調(diào)節(jié)系統(tǒng)能夠?qū)崟r檢測溫度、濕度和CO濃度,將實時狀況顯示于LCD上面。還可以通過RS232接入PC,將數(shù)據(jù)顯示并存儲于PC中。排風系統(tǒng)由單相交流風機和直流風扇組成,通過控制晶閘管來調(diào)節(jié)交流電機以及PWM輸出從而控制直流風扇。
參考文獻:
1 MXT8051 datasheet, version 1.01, 北京時代民芯有限公司
2 MXT8051 demo board, 2009-4-8, 北京時代民芯有限公司
3 MAX9918/MAX9920 datasheet, MAXIM-IC.
4 MC34152 datasheet,October2004-rev7, ON semiconductor
5 DHT11 datasheet, 廣州奧松電子有限公司。
6 TGS2442 datasheet, revised 04/01, FIGARO
評論