周學(xué)禮 ,陳加勇 李興江
(1.常熟理工學(xué)院 物理與電子工程學(xué)院,江蘇 常熟 215500;2.上海大學(xué) 通信與信息工程學(xué)院 上海 200072)
隨著生活的富裕和水族業(yè)的快速發(fā)展,水族箱已進(jìn)入普通家庭,成為主要的室內(nèi)裝飾產(chǎn)品.目前市場(chǎng)上銷(xiāo)售的水族器材品種繁多,但功能不全且不統(tǒng)一,并且多數(shù)都是非自動(dòng)化的,所以繁瑣的喂食環(huán)節(jié)和溫度保持以及不定期出差等各種原因都給生活帶來(lái)諸多不便.本文設(shè)計(jì)實(shí)現(xiàn)了能夠自動(dòng)完成投食和溫度保持功能的水族箱自動(dòng)投料系統(tǒng).
本系統(tǒng)的主要任務(wù)是以單片機(jī)為核心,實(shí)現(xiàn)水族箱自動(dòng)投料.系統(tǒng)包含控制、顯示與監(jiān)控等幾個(gè)主要模塊,欲實(shí)現(xiàn)如下功能:
(1)實(shí)現(xiàn)自動(dòng)喂食和溫度調(diào)節(jié)功能的自由選擇;
(2)可以選擇高低檔位進(jìn)行喂食;
(3)定時(shí)間歇性投放,每次喂食采用“少量多次”的方式達(dá)到總投量的全部投放;
(4)“少量”可以通過(guò)延時(shí)函數(shù)實(shí)現(xiàn),“多次”可以通過(guò)按鍵設(shè)置;
(5)可以實(shí)現(xiàn)當(dāng)前系統(tǒng)狀態(tài)的顯示以及相關(guān)參數(shù)值的顯示;
(6)實(shí)現(xiàn)水體溫度的監(jiān)測(cè),當(dāng)溫度低于設(shè)定下限溫度時(shí),啟動(dòng)加熱功能;
(7)余料不足(或者不多)時(shí)有燈光報(bào)警提示功能.
水族箱溫度、投放次數(shù)、定時(shí)時(shí)間等是本系統(tǒng)主要的控制對(duì)象,通常情況下包括按鍵控制模塊、液晶顯示模塊、溫度采集模塊、定時(shí)中斷模塊、余料檢測(cè)模塊和外部輸出電路.其中外部動(dòng)作電路包括喂食動(dòng)作電路和水體加熱電路兩部分,系統(tǒng)總體設(shè)計(jì)框圖如圖1所示.
2.1.1 傳感器選取
DS18B20是集傳感原件和轉(zhuǎn)換電路于一體的芯片,支持“一線(xiàn)總線(xiàn)”接口,其測(cè)量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃,可以對(duì)系統(tǒng)水體溫度進(jìn)行準(zhǔn)確有效地測(cè)量,因此溫度采集模塊采用DS18B20作為系統(tǒng)溫度傳感器[1]105-109.
DS18B20溫度傳感器只有3個(gè)引腳,不需要外部元件,一條數(shù)據(jù)線(xiàn)可以進(jìn)行通信.但使用一根I/O線(xiàn)通信時(shí),其電源電壓是以寄生方式供電的,因此,只需要將其電源(VDD)和地線(xiàn)(GND)端接地即可[2].DS18B20由只讀存儲(chǔ)器、隨機(jī)存儲(chǔ)器、溫度傳感器、溫度數(shù)字轉(zhuǎn)換電路和串行I/O口等幾部分組成[3].
2.1.2 傳感器電路設(shè)計(jì)
該溫度采集電路是將DS18B20的2號(hào)引腳和單片機(jī)P3.7端口相連,使用5 V的電源,為了確保在DS18B20有用的時(shí)鐘周期內(nèi)能夠提供充足的電流,該引腳還需要接阻值為4.7 K的上拉電阻.
圖1 系統(tǒng)結(jié)構(gòu)框圖
該系統(tǒng)設(shè)置了4個(gè)按鍵,從左往右分別為K1、K2、K3和K4,其中K1和K2分別為控制數(shù)值的加和減按鈕,K3和K4分別為溫度下限值的設(shè)定和喂食動(dòng)作運(yùn)行次數(shù)設(shè)定的選擇按鈕,只有當(dāng)K3或者K4中有一個(gè)保持閉合狀態(tài)時(shí),K1和K2按鍵按下才會(huì)起作用,否則不會(huì)改變系統(tǒng)的設(shè)定參數(shù).這樣的一種設(shè)計(jì)思路既保證了系統(tǒng)各參數(shù)值的設(shè)定,而且簡(jiǎn)化了系統(tǒng)的按鍵設(shè)計(jì),又起到了對(duì)系統(tǒng)按鍵保護(hù)的功能.不會(huì)因?yàn)檎`操作或者兒童的好奇無(wú)心之舉而影響了系統(tǒng)的正常運(yùn)行.其硬件電路連接圖如圖2所示.
圖2 按鍵控制模塊接線(xiàn)圖
2.3.1 顯示器選取
常見(jiàn)的液晶顯示器有1602和12864等多種型號(hào).1602屬于字符型顯示器件,可顯示2行共16個(gè)字符.12864芯片是128×64點(diǎn)陣的漢子圖形型液晶顯示模塊,可顯示4行8列漢字以及圖形,內(nèi)置8192個(gè)中文漢字(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64×256點(diǎn)陣顯示RAM(GDRAM)[4].可與CPU端口直接接口,提供兩種界面來(lái)連接微處理器:8位的并行及串行兩種連接方式.本系統(tǒng)采用12864液晶芯片作為本次設(shè)計(jì)的顯示芯片.
2.3.2 顯示器電路設(shè)計(jì)
該系統(tǒng)使用單片機(jī)P2口的8個(gè)I/O端口線(xiàn)作為數(shù)據(jù)線(xiàn)與12864芯片的數(shù)據(jù)口相連,工作電壓采用5V電源,其他功能引腳分別與單片機(jī)P1口相應(yīng)端口連接[1]275-284.
2.4.1 加熱電路
此功能可以采用光電耦合電路和開(kāi)關(guān)電路(如可控硅)來(lái)實(shí)現(xiàn).本設(shè)計(jì)采用過(guò)零型固態(tài)繼電器來(lái)實(shí)現(xiàn),這是一種更為簡(jiǎn)單實(shí)用的設(shè)計(jì)方案.固態(tài)繼電器一般由五部分組成,其中耦合隔離器的作用是在輸入與輸出兩端電氣完全隔離下傳遞信號(hào),控制觸發(fā)器是為后級(jí)開(kāi)關(guān)電路提供觸發(fā),吸收保護(hù)電路采用R-C串聯(lián)網(wǎng)絡(luò)或壓敏電阻,是為了防止電源的尖峰和浪涌對(duì)開(kāi)關(guān)電路造成損壞,零壓檢測(cè)器用于控制開(kāi)關(guān)開(kāi)通時(shí)刻消除射頻干擾,開(kāi)關(guān)電路是用來(lái)接通或關(guān)斷直流和交流負(fù)載的大功率器件[5].本設(shè)計(jì)采用交流過(guò)零型固態(tài)繼電器GJH5-W,其為4端元件,兩個(gè)輸入端、兩個(gè)輸出端,輸出端串聯(lián)水體加熱電路,電路如圖3所示.輸入端一端接+5 V電源,一端接三極管發(fā)射極.當(dāng)單片機(jī)P0.4輸出低電平時(shí),PNP三極管導(dǎo)通,輸入端滿(mǎn)足固態(tài)繼電器GJH5-W的輸入?yún)?shù)(控制電壓3~12 VDC),輸出端開(kāi)關(guān)閉合,接通加熱模塊(H代表加熱器件);當(dāng)單片機(jī)P0.4輸出高電平時(shí),PNP三極管截止,輸出端開(kāi)關(guān)斷開(kāi),關(guān)閉加熱模塊[6].為了防止魚(yú)類(lèi)與加熱器件直接接觸,要在其外部小范圍內(nèi)采用防護(hù)設(shè)備.
2.4.2 投料電路
系統(tǒng)在一定的等待后,將進(jìn)入運(yùn)行狀態(tài),這時(shí)系統(tǒng)將通過(guò)P0.0口輸出一個(gè)控制信號(hào),通過(guò)它的高低電平來(lái)控制繼電器的開(kāi)與閉,進(jìn)而達(dá)到控制喂食用的動(dòng)作器件的相關(guān)動(dòng)作,以滿(mǎn)足系統(tǒng)喂食功能.具體電路同樣可以參照?qǐng)D3進(jìn)行接線(xiàn).其中控制信號(hào)的間隔長(zhǎng)短可以根據(jù)投料口徑的大小進(jìn)行合理設(shè)置,并通過(guò)按鍵設(shè)置投放次數(shù)來(lái)完成一次喂食環(huán)節(jié).
2.4.3 余料不足報(bào)警電路
這部分電路在于保證系統(tǒng)中有足夠的食料,該電路在余料足夠的情況下,處于開(kāi)路狀態(tài),當(dāng)余料不足時(shí),料盤(pán)里的金屬球就會(huì)隨著余料的減少而下降,當(dāng)金屬球與底部的金屬底座相觸時(shí),該電路就會(huì)處于接通狀態(tài),此時(shí)LED顯示燈將處于常亮狀態(tài),提醒主人適時(shí)添加餌料[7].
圖3 加熱電路圖
為了實(shí)現(xiàn)水族箱自動(dòng)投料,根據(jù)系統(tǒng)功能的要求,以系統(tǒng)硬件電路為基礎(chǔ)進(jìn)行系統(tǒng)的軟件設(shè)計(jì),主要內(nèi)容包括:主程序、溫度檢測(cè)與處理、按鍵控制、液晶顯示等,主程序流程圖如圖4所示[8].
主程序中的一些信息,一是放在顯示間隙完成的,二是放在中斷中完成的.系統(tǒng)利用定時(shí)器T0,在工作方式1下進(jìn)行60 ms的定時(shí),然后由T0中斷對(duì)其進(jìn)行6萬(wàn)次的計(jì)數(shù),以達(dá)到時(shí)長(zhǎng)1 h的定時(shí)[9].
在T0中斷時(shí)進(jìn)行定時(shí)、計(jì)數(shù)、方波輸出等操作,中斷流程圖如圖5所示.圖中g(shù)lucCounter和a分別為以60 ms為定時(shí)單位的計(jì)數(shù)變量和以小時(shí)為單位的計(jì)數(shù)變量,P0.7口輸出周期為2 h的方波信號(hào),與LED燈相連,以方便觀(guān)察定時(shí)器運(yùn)行狀況.
圖4 單片機(jī)主程序流程圖
主要功能模塊的功能分布示意圖如圖6所示,圖中共有四個(gè)部分:顯示部分、按鍵部分、LED提示部分和功能選擇接口部分.
液晶顯示屏的四行顯示內(nèi)容分別為:設(shè)定的溫度下限、水體的當(dāng)前溫度、設(shè)定的喂食參數(shù)值和系統(tǒng)當(dāng)前的狀態(tài)顯示.按鍵部分的K1、K2分別為加、減按鍵,可以進(jìn)行相關(guān)參數(shù)的設(shè)置與修改;K3、K4分別為溫度下限調(diào)整和喂食初值設(shè)定的功能選擇按鍵.只有當(dāng)K3或者K4處于閉合的情況下,才能通過(guò)K1和K2按鍵實(shí)現(xiàn)對(duì)相應(yīng)的參數(shù)值進(jìn)行修改,否則按鍵K1、K2沒(méi)有響應(yīng).LED部分的4個(gè)LED燈的狀態(tài)分別表示:系統(tǒng)正在喂食、系統(tǒng)正在加熱、定時(shí)器中斷產(chǎn)生的方波信號(hào)和系統(tǒng)余料不足的報(bào)警狀態(tài).4個(gè)功能選擇接口分別為A、B、C和D,其中前三個(gè)的通斷分別表示“系統(tǒng)是否開(kāi)啟全部功能”、“是否開(kāi)啟自動(dòng)喂食功能”、“是否開(kāi)啟溫度調(diào)節(jié)功能”,它們接通時(shí)均表示開(kāi)啟此項(xiàng)功能,斷開(kāi)則表示關(guān)閉該功能;當(dāng)D接口處于默認(rèn)斷開(kāi)時(shí),系統(tǒng)采用低檔喂食,當(dāng)D接口接通時(shí),系統(tǒng)采用高檔喂食.
硬件調(diào)試電路主要包括溫度檢測(cè)模塊、按鍵控制模塊、液晶顯示模塊、余料監(jiān)測(cè)模塊和外部動(dòng)作電路.軟件調(diào)試是系統(tǒng)調(diào)試的重點(diǎn)和難點(diǎn),軟件調(diào)試主要有:溫度采集處理程序調(diào)試、按鍵控制程序調(diào)試、液晶顯示程序調(diào)試.
系統(tǒng)調(diào)試完成后運(yùn)行正常,為了獲得溫度檢測(cè)的可靠性,我們?cè)诓煌瑴囟榷螌?duì)溫度參數(shù)進(jìn)行實(shí)測(cè),每一分鐘記錄一次該系統(tǒng)測(cè)得的溫度,每個(gè)溫度段測(cè)量三次并與上海滋源公司生產(chǎn)的水溫溫度計(jì)同時(shí)測(cè)得的數(shù)據(jù)進(jìn)行比較,具體數(shù)據(jù)如表1所示.
從表1的數(shù)據(jù)對(duì)比可知,本系統(tǒng)對(duì)溫度的控制精度高,溫度同比偏差小于0.1℃,控制精度完全達(dá)到系統(tǒng)的要求.
圖6 系統(tǒng)功能分布圖
表1 溫度值對(duì)比數(shù)據(jù)
本文針對(duì)觀(guān)景水族箱在溫度保持、余料不足監(jiān)測(cè)及自動(dòng)喂食等方面的實(shí)際需求,做了廣泛的調(diào)查研究.詳細(xì)地分析了該系統(tǒng)應(yīng)有的功能,并從硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)方面,對(duì)該控制系統(tǒng)的實(shí)現(xiàn)提出了詳細(xì)的設(shè)計(jì)方案.此方案可以自由設(shè)置溫度下限參數(shù)值并能進(jìn)行溫度調(diào)節(jié),還可以實(shí)現(xiàn)對(duì)擁有不同魚(yú)類(lèi)數(shù)量的水族箱進(jìn)行不同的喂食參數(shù)設(shè)置,從而滿(mǎn)足不同情況下的喂食餌料量的要求.系統(tǒng)按鍵模塊只有在正確的操作下,才能進(jìn)行參數(shù)值的修改,在一定程度上起到了對(duì)參數(shù)的保護(hù)作用.由于系統(tǒng)架構(gòu)設(shè)計(jì)合理,功能電路實(shí)現(xiàn)良好,系統(tǒng)性能優(yōu)良、穩(wěn)定,較好地達(dá)到了各項(xiàng)指標(biāo)的預(yù)期要求,具有較好的推廣使用價(jià)值.
[1]李靜,程安宇,陳卓.快速學(xué)通51單片機(jī)C語(yǔ)言程序設(shè)計(jì)[M].北京:人民郵電出版社,2010.
[2]劉亞利.基于MSP430F149型單片機(jī)智能溫度控制系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(6):1062-1065.
[3]呂俊亞.一種基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2012,29(7):230-233.
[4]余華芳,劉健.單片機(jī)與液晶顯示模塊的軟硬件接口技術(shù)[J].液晶與顯示,2003(2):125-129.
[5]周學(xué)禮,陳飛.基于MSP430風(fēng)扇速度自調(diào)裝置的實(shí)現(xiàn)[J].常熟理工學(xué)院學(xué)報(bào),2009,23(8):87-88.
[6]康光華,陳大欽,張林.電子技術(shù)基礎(chǔ)模擬部分[M].5版.北京:高等教育出版社,2006:198-233.
[7]陳建元.傳感器技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008:11.
[8]蔡美琴,張為民,何金兒,等.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,2004:8-44.
[9]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002:86-114.