基于A(yíng)Tmega16L的凈水機控制系統的設計
2.2 開(kāi)關(guān)量輸出
由于控制系統的輸出比較多,在該控制系統中,主要的輸出有:增壓泵、2個(gè)紫外燈、阻返器、臭氧發(fā)生器、4個(gè)進(jìn)水電磁閥、制熱裝置等。如果用單片機端口一對一地輸出控制,則輸出端口的資源相當緊張。因此,本控制系統采用移位/鎖存器CD4094BE結合高壓高電流達林頓管陣列ULN2803A進(jìn)行端口擴展。開(kāi)關(guān)量輸出擴展電路如圖4所示。本文引用地址:http://dyxdggzs.com/article/163059.htm
開(kāi)關(guān)量輸出經(jīng)過(guò)擴展后,由于外部負載為電磁閥感性負載,所以選用高壓高電流達林頓管陣列ULN2803A直接驅動(dòng)負載,同時(shí)增加了D5~D9作為續流二極管。續流二極管均為并聯(lián)且在線(xiàn)圈的兩端,當線(xiàn)圈通過(guò)電流時(shí),會(huì )在其兩端產(chǎn)生感應電動(dòng)勢。當電流消失時(shí),其感應電動(dòng)勢會(huì )對ULN2803A產(chǎn)生反向電壓。當反向電壓高于ULN2803A反向擊穿電壓時(shí),會(huì )造成ULN2803A損壞。但由于續流二極管并聯(lián)在線(xiàn)圈兩端,當流過(guò)線(xiàn)圈中的電流消失時(shí),線(xiàn)圈產(chǎn)生的感應電動(dòng)勢通過(guò)二極管和線(xiàn)圈構成的回路做功而消耗掉了,從而保護了ULN2803A的安全。
2.3 數據保存
由于不同的用戶(hù)設定的參數不一樣,這些參數在沒(méi)有修改前要永久保存,在系統中要求保存的參數有:定時(shí)開(kāi)/關(guān)機的時(shí)間、定時(shí)開(kāi)/關(guān)制熱的時(shí)間、水溫度設定值。這些參數可以通過(guò)外擴鐵電存儲器來(lái)保存,但將會(huì )增加控制系統成本。由于A(yíng)TMEGA16L自身帶有512 B的EEPROM,擦寫(xiě)次數達100 000次??紤]到這些參數不會(huì )頻繁地被修改,所以用單片機內部的EEPROM就能夠滿(mǎn)足參數保存的要求。同時(shí)在程序設計中盡量減少了對EEPROM進(jìn)行讀寫(xiě)R的次數,只在上電時(shí)對EEPROM進(jìn)行讀,參數改變時(shí)對EEPROM進(jìn)行寫(xiě),按每天總共讀寫(xiě)10次計算,可以使用27年。
2.4 水位檢測裝及控制方案
水位的檢測是通過(guò)在水箱中豎直安裝一根中空管(里面分別裝有高/低水位干簧管),中空管外面套有一個(gè)浮動(dòng)的磁環(huán)裝置,與水位同時(shí)升降。當磁環(huán)和相應干簧管在同一高度時(shí),干簧管閉合,單片機檢測到信號后,執行相應控制。如檢測到低水位信號時(shí),單片機輸出啟動(dòng)凈化水的信號,打開(kāi)進(jìn)水閥門(mén),同時(shí)為了避免由于硬件誤檢測帶來(lái)誤控制,在啟動(dòng)凈化水的同時(shí)會(huì )啟動(dòng)制水時(shí)間,在規定時(shí)間內沒(méi)有達到高水位信號時(shí),LCD屏則顯示機器故障或者提示停水了,機器自動(dòng)停機;當檢測到高水位信號時(shí),關(guān)制水,啟動(dòng)殺菌消毒裝置對新制的水進(jìn)行處理。
3 控制系統軟件設計
凈水機的軟件設計采用模塊化設計思想,以主程序為核心,設計了各功能模塊子程序,使大量的功能在子程序中實(shí)現,簡(jiǎn)化了軟件設計結構。子程序模塊主要包括:定時(shí)處理子程序、系統故障檢測處理子程序、溫度處理子程序、鍵盤(pán)管理子程序、數據存儲子程序、顯示子程序等。所有程序采用基于ICCAVR編譯器,用C語(yǔ)言編寫(xiě)。系統主程序流程圖如圖5所示。
以ATmega16L單片機為核心的控制系統凈水機成本低、抗干擾能力強、運行穩定可靠。殺菌消毒過(guò)程使用臭氧、紫外線(xiàn)殺菌消毒兩種方法。通過(guò)對經(jīng)凈水機處理水的水質(zhì)進(jìn)行檢測,可以滿(mǎn)足GB19298-2003、生活飲用水衛生標準GB5749-2006的要求。目前該凈水器已為企業(yè)帶來(lái)了巨大的經(jīng)濟效益。
評論