基于ATmega16的遠(yuǎn)程溫差循環(huán)控制器的設(shè)計(jì)
2.1.3 輸出顯示和鍵盤(pán)輸入電路
液晶顯示用的是OCM中128×64的液晶,該液晶顯示模塊為128×64點(diǎn)陣型液晶顯示模塊,既可顯示各種字符及圖形,又可以顯示4行漢字,剛好符合該設(shè)計(jì)要求,顯示4路溫度,并可與CPU直接接口,具有8位標(biāo)準(zhǔn)數(shù)據(jù)總線、6條控制線及電源線。該設(shè)計(jì)中,由于單片機(jī)接口預(yù)留有限,所以LCD與單片機(jī)的連接采用串行數(shù)據(jù)輸入方法,數(shù)據(jù)通過(guò)單片機(jī)PA7與LCD串行輸入端的第4引腳相連;PA4、PA5為片選信號(hào),分別接LCD的第15、第16引腳;PA6作為讀/寫(xiě)使能信號(hào),與LCD的第6引腳相連,它不僅接口簡(jiǎn)單,而且節(jié)約了單片機(jī)的I/0口資源。鍵盤(pán)輸入接口使用到8個(gè)按鍵,采用行列式2×4鍵盤(pán)實(shí)現(xiàn)。
2.2 從機(jī)電路
從機(jī)的主要功能是完成4路溫度數(shù)據(jù)采集,并將這些數(shù)據(jù)傳送給主機(jī);然后接收主機(jī)下達(dá)的基本設(shè)置數(shù)據(jù),控制實(shí)現(xiàn)溫差循環(huán)、RS485通信、輔助電加熱、管道防凍等功能。RS 485通信與主機(jī)相同,下面主要介紹測(cè)溫和繼電器控制部分。
2.2.1 測(cè)溫電路
測(cè)溫的關(guān)鍵是選擇合適的感溫元件和合理的測(cè)溫電路參數(shù)。這里選用一種負(fù)溫度系數(shù)的熱敏電阻器(NTC),它采用玻殼封裝,體積小,響應(yīng)快,價(jià)格低,安裝方便。水溫測(cè)量使用NTC測(cè)溫電阻TG40B503(25℃時(shí),阻值50 kΩ,B值4 050 K,玻璃封裝),經(jīng)A/D轉(zhuǎn)換后由程序查表,控制精確、選擇合理的電路參數(shù),在0~99℃范圍內(nèi)誤差可小于1 ℃,具有良好的一致性。NTC熱敏電阻的溫度特性一般可用下面的公式表示:
RT=RT0exp(B/T-B/T0) (1)
式中:RT,RT0分別為熱敏電阻器在溫度T(單位:K)和T0(單位:K)時(shí)的阻值(單位:Ω)。B為熱敏電阻器的電阻溫度系數(shù)(單位:K)。熱敏電阻測(cè)溫電路如圖3所示:RT1~RT4為本設(shè)計(jì)所使用的熱敏電阻;PA0~PA3為從機(jī)ATmega16單片機(jī)的A/D接口。
2.2.2 繼電器控制電路
系統(tǒng)輸出功率控制有4路,分別有從機(jī)ATmega16單片機(jī)PB0~PB3端口控制溫差循環(huán)、電加熱循環(huán)、防凍循環(huán)等功能。當(dāng)主機(jī)按“溫差循環(huán)”鍵時(shí),主機(jī)將把信號(hào)發(fā)送給從機(jī),從機(jī)再將RB0置高,啟動(dòng)手動(dòng)循環(huán),再次按“循環(huán)”鍵,程序使RB0輸出低電平口,關(guān)閉手動(dòng)循環(huán)。其他功能與“溫差循環(huán)”基本相同。為了防止繼電器可能干擾單片機(jī)的控制電路部分,在單片機(jī)PB輸出口與繼電器驅(qū)動(dòng)接口電路之間加入了光電耦合器TLP521_2,如圖4所示。
3 系統(tǒng)軟件設(shè)計(jì)
該設(shè)計(jì)的軟件編程并不復(fù)雜,主要有以下幾個(gè)模塊:LCD顯示、RS 485通信、A/D軟件濾波、行列鍵盤(pán)、繼電器控制等。這里主要介紹對(duì)RS 485通信、A/D數(shù)據(jù)的處理。
3.1 RS 485通信格式
在該設(shè)計(jì)中,雖然只是雙機(jī)通信,但是為了以后擴(kuò)展的需要,通信采用輪詢(xún)方式。通信的發(fā)起端是主機(jī),每次通信都是由主機(jī)發(fā)送指令開(kāi)始,然后從機(jī)接收指令,根據(jù)接收到的指令,判斷執(zhí)行相應(yīng)的動(dòng)作。指令共有3種,所以用2位二值代碼。代碼有:00為查詢(xún),01為設(shè)置參數(shù),02為手動(dòng)指令傳輸。
通信流程如下:
(1)主機(jī)隔100 ms發(fā)查詢(xún)幀,從機(jī)返回傳感器數(shù)值數(shù)據(jù)幀;
(2)設(shè)置參數(shù)、狀態(tài)等:主機(jī)發(fā)設(shè)置參數(shù)幀,從機(jī)返回設(shè)置確認(rèn)幀;
(3)若在定時(shí)時(shí)間內(nèi)沒(méi)有收到從機(jī)返回?cái)?shù)據(jù),則重新發(fā)送,一直到從機(jī)正確返回。
3.2 A/D數(shù)據(jù)的處理
測(cè)試中發(fā)現(xiàn),若不對(duì)A/D轉(zhuǎn)換后的溫度數(shù)據(jù)進(jìn)行處理,直接用于溫差循環(huán)控制,會(huì)使繼電器不時(shí)出現(xiàn)誤動(dòng)作。即使在ATmega16芯片外的測(cè)溫電路中加入了各種濾波電路,仍不見(jiàn)改善。因此推斷該干擾可能來(lái)自于A/D轉(zhuǎn)換模塊內(nèi)部。考慮到該系統(tǒng)中現(xiàn)場(chǎng)溫度的變化較緩慢,適合采用滑動(dòng)窗口平均法進(jìn)行數(shù)字濾波。在采用數(shù)字濾波方法對(duì)A/D轉(zhuǎn)換后得到的連續(xù)64個(gè)溫度數(shù)據(jù)進(jìn)行平均后,有效消除了A/D轉(zhuǎn)換后的噪聲。
4 結(jié) 語(yǔ)
以ATmega16為核心的遠(yuǎn)程溫差循環(huán)控制器,使用RS 485方案,可以很好地解決遠(yuǎn)程通信問(wèn)題。該設(shè)計(jì)方案具有使用元件少,成本低,抗干擾性好等優(yōu)點(diǎn)。該控制器的功能實(shí)用,控制準(zhǔn)確可靠,人機(jī)對(duì)話界面直觀,操作簡(jiǎn)便,能滿足各種分體承壓式太陽(yáng)能熱水器對(duì)溫差循環(huán)和電加熱控制的要求。已經(jīng)成功用于分體承壓太陽(yáng)能熱水器的控制中,亦可用于太陽(yáng)能熱水工程中用于溫差循環(huán)控制,具有良好的應(yīng)用前景。
評(píng)論