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