基于ATmega16L的凈水機(jī)控制系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 控制系統(tǒng)的構(gòu)成與工作原理
圖1為凈水機(jī)控制系統(tǒng)的結(jié)構(gòu)框圖。凈水機(jī)主要由控制主板、增壓泵、溫度傳感器、壓縮機(jī)、電熱絲、水位檢測(cè)板、LCD顯示屏、紫外燈管等裝置組成。機(jī)器可通過手動(dòng)開機(jī)和定時(shí)自動(dòng)開機(jī)??刂破鞲鶕?jù)用戶設(shè)定的參數(shù)控制各裝置的工作,實(shí)現(xiàn)機(jī)器的自動(dòng)控制。LCD屏實(shí)時(shí)顯示當(dāng)前工作狀態(tài),用戶可通過按鍵修改和查看已設(shè)定的參數(shù),在參數(shù)被修改后,系統(tǒng)會(huì)更新并保存修改的參數(shù)。在機(jī)器運(yùn)轉(zhuǎn)的過程中,控制器根據(jù)各傳感器的信號(hào)狀態(tài)判斷各部件是否有故障發(fā)生,當(dāng)有故障發(fā)生時(shí)立即對(duì)機(jī)器實(shí)現(xiàn)實(shí)時(shí)保護(hù),同時(shí)LCD屏顯示相應(yīng)故障代碼,以便維護(hù)人員有針對(duì)性地進(jìn)行維修。
2 控制系統(tǒng)的硬件設(shè)計(jì)
2.1 溫度控制
功能完善的凈水機(jī)不但能夠起到凈化水的作用,而且還能夠根據(jù)消費(fèi)者的需求對(duì)水進(jìn)行精確的加熱,以滿足消費(fèi)者的需求。當(dāng)水經(jīng)過直飲水機(jī)深度的科學(xué)處理時(shí),溫度控制的精度很重要。基于這個(gè)特點(diǎn),本文提出了如下溫度控制方案:測(cè)溫元件采用不銹鋼管負(fù)溫度系數(shù)熱敏電阻溫度傳感器,溫度的檢測(cè)電路如圖2所示。當(dāng)溫度變化時(shí),熱敏電阻值會(huì)隨著溫度的升高而減小。為了使測(cè)量的溫度盡可能準(zhǔn),可選擇在經(jīng)常工作的溫度區(qū)間,采用電阻值變化大的熱敏電阻,上拉電阻取測(cè)量溫度的中點(diǎn)溫度時(shí)熱敏電阻的阻值。這樣就能把變化的電阻值轉(zhuǎn)變成電壓值,經(jīng)過濾波后,送單片機(jī)內(nèi)部的A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換后得到相應(yīng)的溫度值。
加熱裝置的電路控制如圖3所示。ICE_CON連接到數(shù)字?jǐn)U展口上,ICE_SYS連接到加熱裝置。
溫度執(zhí)行機(jī)構(gòu)主要由光隔控制可控硅的通與斷來控制加熱電源的通與斷。用可控硅代替繼電器等機(jī)械開關(guān),可使控制具有靈敏、可靠、抗干擾能力強(qiáng)等優(yōu)點(diǎn)[1]。數(shù)字信號(hào)經(jīng)過開關(guān)量擴(kuò)展電路后,送光電耦合器MOC3043,由MOC3043控制可控硅的控制極。通過光電耦合器與可控硅的結(jié)合,能夠有效地把微控系統(tǒng)與交流220 V隔離,同時(shí)又因?yàn)殡p向可控硅采用過零觸發(fā)的方式(這是一種理想的觸發(fā)工作方式),并使正弦波以完整的形式加到負(fù)載上,既有利于保護(hù)元器件的安全使用和負(fù)載的工作穩(wěn)定性,又不會(huì)對(duì)電網(wǎng)造成污染,減少了對(duì)其他設(shè)備的干擾[2]。MOC3043是具有內(nèi)部過零檢測(cè)器的光電耦合可控硅驅(qū)動(dòng)器,用它驅(qū)動(dòng)可控硅具有簡單可靠的優(yōu)點(diǎn)。因?yàn)楫?dāng)輸入端導(dǎo)通時(shí),輸出端并不馬上導(dǎo)通,只有電源電壓過零時(shí)才會(huì)導(dǎo)通,這樣負(fù)載輸出端輸出的就是完整的正弦波[3]。
2.2 開關(guān)量輸出
由于控制系統(tǒng)的輸出比較多,在該控制系統(tǒng)中,主要的輸出有:增壓泵、2個(gè)紫外燈、阻返器、臭氧發(fā)生器、4個(gè)進(jìn)水電磁閥、制熱裝置等。如果用單片機(jī)端口一對(duì)一地輸出控制,則輸出端口的資源相當(dāng)緊張。因此,本控制系統(tǒng)采用移位/鎖存器CD4094BE結(jié)合高壓高電流達(dá)林頓管陣列ULN2803A進(jìn)行端口擴(kuò)展。開關(guān)量輸出擴(kuò)展電路如圖4所示。
開關(guān)量輸出經(jīng)過擴(kuò)展后,由于外部負(fù)載為電磁閥感性負(fù)載,所以選用高壓高電流達(dá)林頓管陣列ULN2803A直接驅(qū)動(dòng)負(fù)載,同時(shí)增加了D5~D9作為續(xù)流二極管。續(xù)流二極管均為并聯(lián)且在線圈的兩端,當(dāng)線圈通過電流時(shí),會(huì)在其兩端產(chǎn)生感應(yīng)電動(dòng)勢(shì)。當(dāng)電流消失時(shí),其感應(yīng)電動(dòng)勢(shì)會(huì)對(duì)ULN2803A產(chǎn)生反向電壓。當(dāng)反向電壓高于ULN2803A反向擊穿電壓時(shí),會(huì)造成ULN2803A損壞。但由于續(xù)流二極管并聯(lián)在線圈兩端,當(dāng)流過線圈中的電流消失時(shí),線圈產(chǎn)生的感應(yīng)電動(dòng)勢(shì)通過二極管和線圈構(gòu)成的回路做功而消耗掉了,從而保護(hù)了ULN2803A的安全。
2.3 數(shù)據(jù)保存
由于不同的用戶設(shè)定的參數(shù)不一樣,這些參數(shù)在沒有修改前要永久保存,在系統(tǒng)中要求保存的參數(shù)有:定時(shí)開/關(guān)機(jī)的時(shí)間、定時(shí)開/關(guān)制熱的時(shí)間、水溫度設(shè)定值。這些參數(shù)可以通過外擴(kuò)鐵電存儲(chǔ)器來保存,但將會(huì)增加控制系統(tǒng)成本。由于ATMEGA16L自身帶有512 B的EEPROM,擦寫次數(shù)達(dá)100 000次??紤]到這些參數(shù)不會(huì)頻繁地被修改,所以用單片機(jī)內(nèi)部的EEPROM就能夠滿足參數(shù)保存的要求。同時(shí)在程序設(shè)計(jì)中盡量減少了對(duì)EEPROM進(jìn)行讀寫R的次數(shù),只在上電時(shí)對(duì)EEPROM進(jìn)行讀,參數(shù)改變時(shí)對(duì)EEPROM進(jìn)行寫,按每天總共讀寫10次計(jì)算,可以使用27年。
2.4 水位檢測(cè)裝及控制方案
水位的檢測(cè)是通過在水箱中豎直安裝一根中空管(里面分別裝有高/低水位干簧管),中空管外面套有一個(gè)浮動(dòng)的磁環(huán)裝置,與水位同時(shí)升降。當(dāng)磁環(huán)和相應(yīng)干簧管在同一高度時(shí),干簧管閉合,單片機(jī)檢測(cè)到信號(hào)后,執(zhí)行相應(yīng)控制。如檢測(cè)到低水位信號(hào)時(shí),單片機(jī)輸出啟動(dòng)凈化水的信號(hào),打開進(jìn)水閥門,同時(shí)為了避免由于硬件誤檢測(cè)帶來誤控制,在啟動(dòng)凈化水的同時(shí)會(huì)啟動(dòng)制水時(shí)間,在規(guī)定時(shí)間內(nèi)沒有達(dá)到高水位信號(hào)時(shí),LCD屏則顯示機(jī)器故障或者提示停水了,機(jī)器自動(dòng)停機(jī);當(dāng)檢測(cè)到高水位信號(hào)時(shí),關(guān)制水,啟動(dòng)殺菌消毒裝置對(duì)新制的水進(jìn)行處理。
3 控制系統(tǒng)軟件設(shè)計(jì)
凈水機(jī)的軟件設(shè)計(jì)采用模塊化設(shè)計(jì)思想,以主程序?yàn)楹诵?,設(shè)計(jì)了各功能模塊子程序,使大量的功能在子程序中實(shí)現(xiàn),簡化了軟件設(shè)計(jì)結(jié)構(gòu)。子程序模塊主要包括:定時(shí)處理子程序、系統(tǒng)故障檢測(cè)處理子程序、溫度處理子程序、鍵盤管理子程序、數(shù)據(jù)存儲(chǔ)子程序、顯示子程序等。所有程序采用基于ICCAVR編譯器,用C語言編寫。系統(tǒng)主程序流程圖如圖5所示。
以ATmega16L單片機(jī)為核心的控制系統(tǒng)凈水機(jī)成本低、抗干擾能力強(qiáng)、運(yùn)行穩(wěn)定可靠。殺菌消毒過程使用臭氧、紫外線殺菌消毒兩種方法。通過對(duì)經(jīng)凈水機(jī)處理水的水質(zhì)進(jìn)行檢測(cè),可以滿足GB19298-2003、生活飲用水衛(wèi)生標(biāo)準(zhǔn)GB5749-2006的要求。目前該凈水器已為企業(yè)帶來了巨大的經(jīng)濟(jì)效益。