宋秦中,周 宇
(蘇州市職業(yè)大學(xué)機(jī)電工程學(xué)院,江蘇蘇州 215104)
嬰兒皮膚嬌嫩、體溫調(diào)節(jié)系統(tǒng)還不成熟,對溫度不敏感,在洗澡時(shí)為了防止?fàn)C傷,應(yīng)嚴(yán)格控制寶寶洗澡水的水溫,不宜太熱也不宜太冷。一般在家里給嬰兒洗澡時(shí),很多家長都習(xí)慣了先倒點(diǎn)熱水,然后慢慢加冷水,接著用手腕或者手背部來測試水溫。醫(yī)學(xué)推薦的水溫在37~40 ℃是合適的,但成年人靠手腕或者手背部感受水溫不準(zhǔn)確,某些溫度對成年人來說可能沒有任何感覺,但對嬰幼兒影響卻比較大,因此設(shè)計(jì)一款經(jīng)濟(jì)適用的水溫監(jiān)測報(bào)警器,科學(xué)、準(zhǔn)確地進(jìn)行水溫監(jiān)測報(bào)警具有一定的現(xiàn)實(shí)意義。從經(jīng)濟(jì)角度出發(fā),采用單片機(jī)作為溫控系統(tǒng),通過對外部水溫進(jìn)行溫度的檢測,設(shè)定上下限溫度,當(dāng)檢測水溫低于或超過設(shè)定溫度,蜂鳴器報(bào)警,從而提醒添加冷熱水。
設(shè)計(jì)的溫度監(jiān)測報(bào)系統(tǒng)包括3 個(gè)部分:主控芯片、溫度檢測部分和溫度顯示部分,如圖1所示。與傳統(tǒng)的溫度計(jì)相比,其具有讀數(shù)方便、測溫范圍廣、測溫準(zhǔn)確等優(yōu)點(diǎn)。另外,輸出溫度采用數(shù)字顯示,測溫準(zhǔn)確、直觀。
圖1 總體設(shè)計(jì)方框圖
具體要求如下:(1)測溫范圍37~40 ℃;(2)精度誤差0.1 ℃;(3)數(shù)碼管直讀顯示;(4)具有擴(kuò)展功能,可以設(shè)置任意的溫度來檢測上下限報(bào)警溫度。
從性價(jià)比和開發(fā)的難易程度考慮,使用STC89C51 單片機(jī)作為主控芯片,使用數(shù)碼管作為顯示溫度部分。剩下的是溫度監(jiān)測部分的選型,其核心是溫度傳感器的選擇[1-6]。傳統(tǒng)的方案是采用熱敏電阻,這種設(shè)計(jì)需要使用一個(gè)模數(shù)轉(zhuǎn)換電路,測溫電路比較麻煩。而采用數(shù)字型溫度傳感器,從成本考慮還是在軟硬件的設(shè)計(jì)方案復(fù)雜程度上,都占一定優(yōu)勢。因此,最終選定STC89C51單片機(jī)作為主控芯片,數(shù)字溫度傳感器DS18B20 構(gòu)建溫度檢測部分,數(shù)碼管作為溫度顯示部分。
圖2 溫度傳感器電路原理圖
硬件設(shè)計(jì)包括單片機(jī)最小系統(tǒng)、溫度傳感器系統(tǒng)、報(bào)警電路、顯示電路和電源電路等部分等設(shè)計(jì),設(shè)計(jì)的溫度監(jiān)測報(bào)警器電路原理圖如圖2所示。
最小系統(tǒng)包括晶振電路、復(fù)位電路、按鍵設(shè)置部分,具體電路設(shè)計(jì)如圖3所示。
圖3 單片機(jī)最小系統(tǒng)電路
溫度傳感器系統(tǒng)采用DS18B20 數(shù)字型溫度傳感器,通過編程實(shí)現(xiàn)9~12位數(shù)字讀出模式,如表1所示。DS18B20 實(shí)現(xiàn)溫度轉(zhuǎn)換之后,就把測得的溫度值與RAM 中的TH、TL 字節(jié)內(nèi)容作對比。如果所測得的溫度高于上限值或低于下限值時(shí),則向主系統(tǒng)發(fā)出的報(bào)警命令作出呼應(yīng)。另外,根據(jù)本系統(tǒng)的特點(diǎn),溫度傳感器的電路設(shè)計(jì)利用單線進(jìn)行數(shù)據(jù)傳輸。
表1 DS18B20部分溫度對應(yīng)值表
報(bào)警電路主要由蜂鳴器、三極管、電源等所組成的。顯示電路中主要的組成部分為數(shù)碼管和三極管,數(shù)碼管主要是來顯示所需要的信息。電源電路采用的是USB 接口供電,而自鎖開關(guān)來控制電源的開關(guān),當(dāng)按下自鎖開關(guān)時(shí),數(shù)碼管就會顯示并工作。
依據(jù)方案設(shè)計(jì)以及單片機(jī)的主要芯片設(shè)計(jì)主程序的流程圖:先是程序的初始化設(shè)計(jì),然后再讀取報(bào)警溫度,之后判斷所設(shè)置的溫度是否超過40 ℃或者低于37 ℃,如果在這范圍之間就會執(zhí)行測溫的程序,如果不在就會報(bào)警,然后返回讀取報(bào)警溫度的程序,直至其在這溫度范圍才進(jìn)行下一步的程序;緊接著就是進(jìn)行測溫的程序,然后判斷溫度是否超標(biāo),如果超標(biāo)就報(bào)警,如果沒有超標(biāo)就執(zhí)行判斷的程序看其是否超過所設(shè)置的溫度。主程序的系統(tǒng)流程如圖4所示。
圖4 主程序流程圖
一個(gè)完整的軟件程序的系統(tǒng),離不開主程序與子程序的組成,本設(shè)計(jì)由DS18B20 溫度傳感器的初始化子程序、顯示溫度子程序、顯示報(bào)警溫度子程序、報(bào)警子程序、中斷子程序等組成。在子程序設(shè)計(jì)當(dāng)中,主要的是DS18B20 溫度傳感器子程序的設(shè)計(jì),其流程如圖5所示。
圖5 DS18B20溫度傳感器子程序流程圖
用Keil 進(jìn)行程序編譯,將生成的HEX 文件導(dǎo)入Proteus 電路圖的單片機(jī)中,進(jìn)行仿真測試。在電路初始化的過程中通過調(diào)整DS18B20 溫度傳感器的溫度值,數(shù)碼管將顯示相應(yīng)的數(shù)值。
設(shè)置報(bào)警溫度上限時(shí),按一下設(shè)置按鈕,從溫度顯示模式進(jìn)入溫度上限設(shè)置模式,可以通過仿真圖中的加減按鈕來設(shè)置其上限溫度值,當(dāng)溫度超過系統(tǒng)下限時(shí),系統(tǒng)會發(fā)出聲光報(bào)警,蜂鳴器會發(fā)出報(bào)警聲,黃燈閃爍。當(dāng)溫度超過設(shè)定上限時(shí),系統(tǒng)會報(bào)警,蜂鳴器會響,紅燈閃爍,如圖6所示。
通過本設(shè)計(jì)的電路原理圖以及PCB 原理圖對其進(jìn)行實(shí)物焊接,先將焊接好的實(shí)物進(jìn)行軟件程序的燒錄,之后對其進(jìn)行調(diào)試。
(1)初始狀態(tài)調(diào)試
首先將焊接好實(shí)物平整地放在桌面上,再利用USB接口來連接電源與實(shí)物,按下自鎖開關(guān),然后檢查其初始狀態(tài)。
(2)傳感器檢查
檢驗(yàn)溫度傳感器是否起作用,用手觸摸它來發(fā)現(xiàn)其溫度是否改變。
(3)按鍵檢查
先檢查復(fù)位按鍵是否有作用,按下復(fù)位按鍵,看顯示屏是否變成初始狀態(tài)。
(4)實(shí)物測試
檢驗(yàn)溫度設(shè)定按鈕,先按下溫度范圍設(shè)置按鈕,按一下設(shè)置按鍵,調(diào)動(dòng)溫度上調(diào)按鍵來設(shè)置最高上限為40°C,如圖7(a)所示。當(dāng)測量熱水時(shí)高于其上限溫度,紅燈亮,蜂鳴器報(bào)警,如圖7(b)所示。
圖6 超過上限報(bào)警仿真圖
圖7 實(shí)物測試
使用STC89C51單片機(jī)作為主控芯片,采用數(shù)字溫度傳感器DS18B20 作為溫度檢測部分,選用數(shù)碼管作為溫度顯示部分,完成了一種水溫監(jiān)測報(bào)警系統(tǒng)的設(shè)計(jì)。仿真和實(shí)物調(diào)試證明,設(shè)計(jì)的系統(tǒng)能夠?qū)崟r(shí)測量及顯示溫度,超出溫度范圍聲光報(bào)警,上下限溫度可通過按鍵設(shè)定等。
將設(shè)計(jì)的系統(tǒng)進(jìn)行產(chǎn)品化設(shè)計(jì)與包裝后能夠應(yīng)用于嬰兒洗澡水水溫監(jiān)測與報(bào)警,溫控系統(tǒng)對洗澡水水溫進(jìn)行溫度檢測,按照實(shí)際情況設(shè)定適宜的上下限溫度,當(dāng)檢測水溫低于或超過設(shè)定溫度,蜂鳴器報(bào)警,從而提醒添加冷熱水,從而保護(hù)嬰兒洗浴安全。
設(shè)計(jì)的系統(tǒng)具有簡單、易上手、易操作,應(yīng)用范圍廣等優(yōu)點(diǎn),可以拓展到多種溫度監(jiān)測報(bào)警場合。