基于單片機(jī)的紅外微電腦自動(dòng)泵液器設(shè)計(jì)
在我們的日常生活中,經(jīng)常會(huì)遇到這樣的窘境,想要往給液器里添加洗手液或洗潔劑,卻弄了一手的液體;在醫(yī)院里,護(hù)士為了給病人補(bǔ)給營養(yǎng)液,卻難以避免營養(yǎng)液被多多少少污染。此時(shí),你真的需要一款紅外微電腦自動(dòng)泵業(yè)器,它不同于以往所見到的所有的給液器。不僅即插好用,而且安裝無需打孔破壞墻面,補(bǔ)液無需灌裝,杜絕了液體的二次污染,使用無接觸,更衛(wèi)生、方便,是取代傳統(tǒng)香皂及其他瓶裝、泵裝洗護(hù)產(chǎn)品的時(shí)尚而經(jīng)濟(jì)的選擇。此外,它是由單片機(jī)控制,克服了普通工業(yè)控制中常見的多回路、耦合、干擾等多種情況,可設(shè)定出液量,具有抗干擾能力強(qiáng)、無誤操作、低壓報(bào)警、省電節(jié)能等特點(diǎn)。不僅適用于家庭,也適用于公共單位,如:醫(yī)院、銀行、政府機(jī)構(gòu)、學(xué)校等。 1系統(tǒng)總體設(shè)計(jì) 該系統(tǒng)能自動(dòng)探測有無物體靠近出液口,探測距離為15~20cm,LED顯示器粗略顯示容器內(nèi)洗滌劑的剩余量,分為3種情況: (1)最低的一段LED亮說明洗滌劑剩余量較少,需要盡快補(bǔ)充; (2)最低段和中間段同時(shí)亮說明洗滌劑充足; (3)三段同時(shí)亮說明容器內(nèi)洗滌劑的已經(jīng)超過安全警戒線,不能再繼續(xù)加入,段間分隔誤差:±5mm。 另外系統(tǒng)備有操作按鍵一個(gè),用于選擇流量,開機(jī)時(shí)默認(rèn)值為小流量,按1次按鍵后選擇中流量,按2次選擇大流量,按3次后進(jìn)入清洗模式,再按一次退出清洗模式并選擇小流量。 自動(dòng)給液系統(tǒng)的組成框圖如圖1所示。 LED顯示器用于顯示容器內(nèi)液體的粗略剩余量,該顯示器為三段條形LED顯示器,豎直安裝于出液器外殼上。 紅外線發(fā)射、接收器這兩個(gè)裝置相互配合構(gòu)成一個(gè)主動(dòng)式紅外線探測雷達(dá),用于探測有無物體接近出液口,探測距離為15~20cm,紅外線發(fā)射載波頻率為38.4kHz,由微控制器(MCU)內(nèi)部的定時(shí)器對主時(shí)鐘分頻得到;接收頭的中心頻率為39.7kHz;通過調(diào)節(jié)發(fā)射電流來調(diào)節(jié)探測距離。 液位傳感器該傳感器為電阻式傳感器,通過一個(gè)帶有旋轉(zhuǎn)軸的浮球帶動(dòng)電位器旋轉(zhuǎn),從而把液面高度的變化轉(zhuǎn)換為電阻的變化,然后在該電阻中通過一定的電流,就間接的把液面變化轉(zhuǎn)換為電壓的變化,微控制器(MCU)通過模數(shù)轉(zhuǎn)換(ADC)讀取該電阻值就可以獲得液面的高度值,ADC轉(zhuǎn)換精度8位。 串行接口該接口為備用接口,用于今后系統(tǒng)的擴(kuò)展,此外MCU還通過該接口把液面高度值送往其他系統(tǒng),傳輸速率為1200b/s,可以用PC機(jī)或其他具有UART單元的系統(tǒng)接收該數(shù)據(jù)。 2系統(tǒng)硬件結(jié)構(gòu) MCU引腳定義如表1所示: 3系統(tǒng)軟件結(jié)構(gòu) 3.1主程序流程圖 主程序流程框圖如圖2所示,他主要完成初始化工作,進(jìn)行目標(biāo)檢測,控制出液,并且顯示液位情況,整個(gè)程序中大量地調(diào)用了其他子程序,為了方便不再一一列出其他子程序框圖,主程序采用查詢方式,初始化完成后一直處在等待響應(yīng)狀態(tài)。 定時(shí)器中斷子程序,本子程序在整個(gè)系統(tǒng)中承擔(dān)了紅外檢測的設(shè)置工作,單片機(jī)的設(shè)計(jì)中,定時(shí)器是個(gè)重要環(huán)節(jié),本設(shè)計(jì)中采用定時(shí)器0中斷的工作方式,中斷程序流程圖如圖3所示。 出液控制子程序是本設(shè)計(jì)中的重要部分,他根據(jù)目標(biāo)檢測的結(jié)果控制步進(jìn)電機(jī)的工作,程序流程圖大致如圖4所示。 3.2MCU內(nèi)部RAM分配 AT89C2051內(nèi)部共有128B的RAM,做如下分配: 00H~07H:工作寄存器組(R0~R7),作為通用寄存器使用。 10H~14H:液面高度采樣數(shù)據(jù)緩沖區(qū)(ADCBuff)。 16H:軟件定時(shí)器(SoftTimel)。 17H:液面高度值(OldADCOut)。 1FH:鍵值(KeyValue)。 20H:工作標(biāo)志組0(WF0)。 5FH:流量控制值(FluxValue)。 60H~7H:32B的系統(tǒng)堆棧(STACK)。 3.3標(biāo)志位的分配 F_Xms:WF0.0,定時(shí)器0中斷服務(wù)標(biāo)志,在定時(shí)器0中斷服務(wù)程序結(jié)束時(shí)置位,在軟件定時(shí)器操作程序中查詢該標(biāo)志后復(fù)位。該標(biāo)志位主要用于通知系統(tǒng)程序"一次定時(shí)器中斷已經(jīng)處理完畢"。 SendEN:WF0.1,主動(dòng)紅外探測器發(fā)射開關(guān),該標(biāo)志置位時(shí)允許紅外探測器向外發(fā)射38.4kHz紅外探測信號,復(fù)位時(shí)則不允許發(fā)射。該標(biāo)志在紅外探測器啟動(dòng)時(shí)置位,在探測器關(guān)閉時(shí)復(fù)位。 DetEN:WF0.2,紅外探測開關(guān),該標(biāo)志置位時(shí)系統(tǒng)啟動(dòng)紅外探測器探測目標(biāo),復(fù)位時(shí)系統(tǒng)不啟動(dòng)探測器。該標(biāo)志在系統(tǒng)退出守候模式時(shí)置位,在探測到目標(biāo)后復(fù)位。 MTCEN:WF0.3,電機(jī)運(yùn)轉(zhuǎn),標(biāo)志置位時(shí)表明電機(jī)處于運(yùn)轉(zhuǎn)狀態(tài),系統(tǒng)檢查運(yùn)轉(zhuǎn)時(shí)間是否結(jié)束,如果MTCEN和DetEN都復(fù)位,系統(tǒng)將進(jìn)入守候式:既不探測目標(biāo),也不啟動(dòng)電機(jī),3s后自動(dòng)退出守候模式。該標(biāo)志在紅外探測器探測到目標(biāo)并啟動(dòng)電機(jī)后置位,電機(jī)運(yùn)轉(zhuǎn)時(shí)間結(jié)束后復(fù)位。 WashMode:WF0.4,清洗標(biāo)志,標(biāo)志置位時(shí)表明系統(tǒng)處于清洗模式下,系統(tǒng)的其他功能將被關(guān)閉,復(fù)位時(shí)關(guān)閉清洗功能。該標(biāo)志在用戶啟動(dòng)清洗功能時(shí)置位,關(guān)閉清洗功能時(shí)復(fù)位。 KeyST:WF0.5,按鍵狀態(tài)標(biāo)志,標(biāo)志置位時(shí)表明按鍵處于釋放狀態(tài),系統(tǒng)檢測按鍵是否按下,復(fù)位時(shí)表明按鍵已經(jīng)按下,系統(tǒng)等待按鍵釋放。該標(biāo)志在檢測到按鍵釋放時(shí)置位,在檢測到按鍵按下時(shí)復(fù)位。 KeyLPF:WF0.6,按鍵檢測消除抖動(dòng)控制位。 4結(jié)語 該設(shè)計(jì)的通用性很強(qiáng),性價(jià)比高,可以應(yīng)用于許多非接觸式的給液系統(tǒng),如:水龍頭自動(dòng)給水感應(yīng)器;感應(yīng)洗手器;自動(dòng)控制感應(yīng)水龍頭;自動(dòng)淋浴器;自動(dòng)給皂器;感應(yīng)烘手機(jī)等。本文介紹的設(shè)計(jì)思想可以推廣到其他類似的液位及出液量控制系統(tǒng)中。