基于RS-485通信的溫度水位遠(yuǎn)程測(cè)控系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為滿足太陽能熱水工程遠(yuǎn)距離測(cè)控的需要,設(shè)計(jì)了一個(gè)基于單片機(jī)控制的溫度和水位遠(yuǎn)程測(cè)控系統(tǒng)。系統(tǒng)的主機(jī)和從機(jī)均以ATmega16為控制器,二者通過RS-485通信,距離可以超過1 km。用NTC熱敏電阻作測(cè)溫元件,使用單片機(jī)內(nèi)置的10位A/D轉(zhuǎn)換模塊實(shí)現(xiàn)多路溫度的測(cè)量。通過非對(duì)稱式多諧振蕩器電路把水位轉(zhuǎn)換為振蕩頻率,再用計(jì)數(shù)器測(cè)量頻率來實(shí)現(xiàn)水位的測(cè)量。給出了主機(jī)和從機(jī)的完整電路及功能,較詳細(xì)地介紹了水位和溫度的測(cè)量電路以及傳感器參數(shù)。
關(guān)鍵詞:RS-485;ATmega16;水位;溫度;遠(yuǎn)程
目前,與太陽能集熱熱水工程配套的控制器基本上都是單機(jī)工作,需要安裝在離太陽能熱水工程現(xiàn)場(chǎng)較近的位置,而太陽能熱水工程一般是安裝在工廠、賓館和居民樓的樓頂上,因此管理人員必須爬上樓頂才能完成信息查看和功能操作,管理和操作十分便。為滿足太陽能熱水工程遠(yuǎn)距離測(cè)控的需求,本設(shè)計(jì)采用ATmega16單片機(jī),利用RS-485通信技術(shù)、NTC熱敏傳感器和多諧振蕩器測(cè)量水位方法,研制開發(fā)了溫度水位遠(yuǎn)距離測(cè)控系統(tǒng),解決了太陽能熱水工程需要遠(yuǎn)距離測(cè)控的問題。
1 系統(tǒng)結(jié)構(gòu)和工作原理
遠(yuǎn)距離溫度和水位測(cè)控系統(tǒng)用于選擇功能,設(shè)置參數(shù),測(cè)量和顯示太陽能熱水工程儲(chǔ)水箱中的水溫和水位、集熱器的溫度、溫差循環(huán)管道溫度和出水溫度,控制上水、溫差循環(huán)換能、輔助電加熱、管道防凍等。系統(tǒng)主要由主機(jī)、從機(jī)、溫度和水位傳感器及電氣控制部分組成,遠(yuǎn)程溫度和水位測(cè)控系統(tǒng)的總體結(jié)構(gòu)如圖1所示。主機(jī)以ATmega16單片機(jī)為控制芯片,通過RS-485與從機(jī)通信,完成基本功能設(shè)置,用LCD顯示工作狀態(tài)、水位、多路溫度等數(shù)據(jù),并把設(shè)置的參數(shù)和控制信息傳送給從機(jī)。從機(jī)也是以ATmega16為控制芯片,主要負(fù)責(zé)完成水位、溫度等現(xiàn)場(chǎng)數(shù)據(jù)的采集和電氣控制。
2 系統(tǒng)硬件設(shè)計(jì)
ATmega16單片機(jī)內(nèi)置10位A/D模塊,可直接實(shí)現(xiàn)多達(dá)8個(gè)通道模擬信號(hào)的A/D轉(zhuǎn)換輸入,有兩個(gè)8位和一個(gè)16位的計(jì)數(shù)器,帶有512的E2PROM,可以實(shí)現(xiàn)數(shù)據(jù)掉電保護(hù),ATmega16還帶有串行接口,可以接485轉(zhuǎn)換芯片實(shí)現(xiàn)RS-485通信。
2.1 主機(jī)電路
主機(jī)的主要功能是接收從機(jī)采集的儲(chǔ)水箱水位、4路溫度數(shù)據(jù)、在128x64的液晶上顯示水位、溫度和工作狀態(tài)。主機(jī)的另外一個(gè)功能是完成參數(shù)的設(shè)置,然后把設(shè)置的參數(shù)發(fā)送給從機(jī)。圖2是主機(jī)的電路圖,其主要由RS-485通信、鍵盤輸入和LCD顯示等幾個(gè)部分組成。
2.1.1 RS-485通信
RS-485總線通信模式由于具有結(jié)構(gòu)簡單、價(jià)格低、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)膬?yōu)點(diǎn)而被廣泛應(yīng)用于樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。但RS-485總線存在自適應(yīng)、自保護(hù)功能差等缺點(diǎn),如一些細(xì)節(jié)處理不好,常會(huì)出現(xiàn)通信失敗等故障,因此提高RS-485總線的可靠性十分重要。在該電路中使用的接口芯片MAX485是Maxim公司的一種RS-485芯片,采用單+5 V電源工作,額定電流為300 μA,采用半雙工通訊方式,它的結(jié)構(gòu)和引腳簡單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別是接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可。RE和DE端分別是接收和發(fā)送的使能端,當(dāng)RE為邏輯0時(shí),器件處于接收狀態(tài),當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳PD2控制這兩個(gè)引腳即可。A端和B端分別是接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1,當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。同時(shí)將A和B端之間加匹配電阻R9,一般可選120 Ω的電阻。在圖2中使用四位一體的光電耦合器TLP521讓單片機(jī)與MAX485之間實(shí)現(xiàn)了完全的電隔離,消除了相互干擾,提高了電路的可靠性。
2.1.2 鍵盤輸入和輸出顯示電路
液晶顯示選用的OCM128x64是128x64點(diǎn)陣型液晶顯示模塊,可顯示各種字符及圖形,可顯示四行漢字,滿足本設(shè)計(jì)的要求,可與單片機(jī)直接接口,具有8位標(biāo)準(zhǔn)數(shù)據(jù)總線、6條控制線及電源線。鍵盤輸入和顯示輸出電路如圖2中所示,LCD與單片機(jī)的連接使用數(shù)據(jù)串行輸入方法,數(shù)據(jù)通過PA7和LCD串行輸入端輸入,PA4、PA5為片選信號(hào),PA6為讀寫使能信號(hào)。輸入按鍵為8個(gè),用2x4鍵盤接PC0~PC5實(shí)現(xiàn)。
2.2 從機(jī)電路
從機(jī)的主要功能是完成一路水位和四路溫度的測(cè)量,并通過RS-485通信將這些數(shù)據(jù)傳送給主機(jī),接收主機(jī)發(fā)送來的參數(shù)和控制信息,通過繼電器組控制上水、溫差循環(huán)、輔助電加熱、管道防凍和恒溫供水等。從機(jī)電路如圖3所示。
2.2.1 水位測(cè)量
先用非對(duì)稱式多諧振蕩器電路把水位傳感器的阻值大小轉(zhuǎn)換為振蕩信號(hào)的頻率,再用單片機(jī)內(nèi)部的計(jì)數(shù)器測(cè)量信號(hào)的頻率來測(cè)量水位。如圖4所示,非對(duì)稱式多諧振蕩器電路由74HC04、C1、R5~R7和水位傳感器的電阻Rw組成。該振蕩器的振蕩頻率為f=1/[2.2(R5+R6+Rw)C1]??蛇x用四個(gè)電阻相串聯(lián),在電阻引線處引出5個(gè)水位探測(cè)電極,作為4水位測(cè)量傳感器。由于水有導(dǎo)電性,水位的變化引起水位探測(cè)電極間的短路,改變水位傳感器的電阻Rw的阻值,使振蕩頻率f發(fā)生變化。該振蕩信號(hào)經(jīng)非門隔離后接單片機(jī)的引腳PB1,由Tmega16片內(nèi)16位計(jì)數(shù)器T1對(duì)振蕩信號(hào)的頻率f計(jì)數(shù)來測(cè)量水位高低。通過大量實(shí)驗(yàn),對(duì)上述多諧振蕩器電路和參數(shù),當(dāng)選用阻值分別為30、10、10、10 kΩ的4個(gè)電阻串聯(lián)組成測(cè)量水位傳感器時(shí),振蕩信號(hào)的頻率f的值在60~415 Hz之間,用于水位測(cè)量,效果很好。
2.2.2 溫度測(cè)量
四路測(cè)溫電路完全相同,選用NTC熱敏電阻器測(cè)溫傳感器,每一路都是用一個(gè)阻值固定的電阻(如R1)與一個(gè)熱敏電阻(如RT1)串聯(lián),對(duì)5 V電源電壓分壓,利用熱敏電阻上的壓降隨溫度變化而變化實(shí)現(xiàn)溫度的測(cè)量。在圖4中,四個(gè)熱敏電阻RT1~RT4上的電壓分別接到引腳AD0~AD3上。通過ATmega16內(nèi)置的多通道10位A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)后由程序讀取,分別用于測(cè)量儲(chǔ)水箱水溫、集熱器溫度、溫差循環(huán)管道溫度和供水溫度。NTC熱敏電阻具有電阻溫度系數(shù)大,靈敏度高,體積小,響應(yīng)速度快,能進(jìn)行精密溫度測(cè)量的優(yōu)點(diǎn),缺點(diǎn)是熱電特性非線性現(xiàn)象嚴(yán)重。如使用TG408503(25℃時(shí),阻值50kΩ,B值4050K,玻璃封裝)NTC熱敏電阻,在0~99℃范圍內(nèi),電阻的靈敏度約為8500~100Ω/℃。因此使用時(shí)一般要進(jìn)行線性補(bǔ)償。通過計(jì)算和分析,在RT1~RT4選用玻璃封裝。精度為50 kΩ±0.5%,B值為4 050K±1%的NTC熱敏電阻,電阻R1~R4選用精度為20 kΩ±0.5%的金屬膜電阻時(shí),測(cè)溫精度可達(dá)±1℃。
2.2.3 控制電路
從機(jī)通過PB0、PB2~PB4控制4路繼電器,分別用來控制溫差循環(huán)泵、輔助電加熱、防凍電伴熱帶、上水電磁閥等。如在主機(jī)按“上水”鍵,主機(jī)將把信號(hào)發(fā)給從機(jī),從機(jī)再將PB4置高,啟動(dòng)手動(dòng)上水,再次按“上水”鍵,程序使PB4輸出低電平口,手動(dòng)關(guān)閉上水。其它功能和“上水”,基本相同。在PB0、PB2~PB4與繼電器之間加入光電耦合器TLP521,用于隔離繼電器的干擾。
3 系統(tǒng)軟件設(shè)計(jì)
測(cè)控系統(tǒng)的程序用C語言編寫,程序并不復(fù)雜,主要包含有LCD顯示,RS-485通信,行列鍵盤輸入,A/D數(shù)據(jù)處理,繼電器控制等幾個(gè)程序模塊。在該設(shè)計(jì)中雖然只是雙機(jī)通信,但是為了將來擴(kuò)展的需要,通信采用輪詢方式。首先主機(jī)發(fā)送指令,從機(jī)接收指令,根據(jù)指令,判斷執(zhí)行相應(yīng)動(dòng)作。指令總共3種,所以用兩位二值代碼,代碼有:00為查詢,01為設(shè)置參數(shù),02為手動(dòng)指令傳輸。485通信流程如下:主機(jī)隔
50 ms發(fā)查詢幀一>從機(jī)返回傳感器數(shù)值數(shù)據(jù)幀;設(shè)置參數(shù)、狀態(tài)等:主機(jī)發(fā)設(shè)置參數(shù)幀,啟動(dòng)定時(shí)器定時(shí)20 ms一>從機(jī)返回設(shè)置確認(rèn)幀;若在定時(shí)時(shí)間內(nèi)沒有收到從機(jī)返回?cái)?shù)據(jù),則重新發(fā)送,一直等到從機(jī)返回正確數(shù)據(jù)。
4 結(jié)論
太陽能集熱熱水工程現(xiàn)已大量安裝于工廠、賓館、居民樓等需要提供大量熱水的場(chǎng)所,與其配套使用的控制系統(tǒng)是不可缺少的部分。本系統(tǒng)以ATmega16為控制芯片,使用RS-485通信,主機(jī)和從機(jī)之間通信距離可達(dá)1 km以上。系統(tǒng)采用NTC熱敏電阻和A/D轉(zhuǎn)換測(cè)溫的方案,電路簡單,能滿足太陽能集熱熱水工程中多路測(cè)溫的精度要求。用非對(duì)稱多諧振蕩器電路測(cè)量水位的辦法,水位傳感器制作容易,成本低,可以實(shí)現(xiàn)水位的可靠測(cè)量。本系統(tǒng)功能實(shí)用,人機(jī)對(duì)話界面直觀,操作簡便,測(cè)控可靠,較好地解決了太陽能熱水工程或其它一些場(chǎng)合對(duì)水位、溫度的遠(yuǎn)距離測(cè)控的問題。