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