新聞中心

EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 全數(shù)字溫濕度儀的設(shè)計(jì)與實(shí)現(xiàn)

全數(shù)字溫濕度儀的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2016-10-22 來源:網(wǎng)絡(luò) 收藏

本文從實(shí)際應(yīng)用出發(fā),較全面地介紹了全的設(shè)計(jì)與實(shí)現(xiàn)。方案采用AT89S52單片機(jī)作為MCU,DS18B20作為數(shù)字溫度,奧松DHT11為數(shù)字濕度,1602液晶模塊為顯示部件,結(jié)合相關(guān)電路組成溫濕度計(jì)的硬件部分,嵌入式編程采用C51語言。

本文引用地址:http://m.butianyuan.cn/article/201610/309091.htm

本文不僅包括器件選型方面的硬件知識(shí),同時(shí)給出了驅(qū)動(dòng)等典型程序段。實(shí)踐證明,本溫濕度儀具有測(cè)量數(shù)據(jù)準(zhǔn)確、顯示直觀、反應(yīng)快、量程大、誤差小、免標(biāo)定、報(bào)警溫度可設(shè)定等優(yōu)點(diǎn),穩(wěn)定可靠,值得推廣。

0引言

溫濕度儀是日常生活、工礦企業(yè)、養(yǎng)殖等場(chǎng)所經(jīng)常使用的測(cè)量溫度、濕度的儀表,老式溫濕度儀存在反應(yīng)慢、精度低、量程小、標(biāo)定繁瑣等缺點(diǎn)。近年來,隨著數(shù)字傳感器發(fā)展與普及,溫濕度儀也在朝著數(shù)字化、免標(biāo)定、方便設(shè)置報(bào)警、實(shí)時(shí)監(jiān)控等方向發(fā)展。尤其以DS18B20、DHT11為代表的數(shù)字傳感器,屬于集成傳感器,可靠性很高,因此,采用微控制器結(jié)合數(shù)字傳感器,設(shè)計(jì)全數(shù)字的溫濕度儀,具有普遍的實(shí)際意義和社會(huì)價(jià)值。

1.功能結(jié)構(gòu)描述

本溫濕度儀以MCU為核心,利用最新數(shù)字化溫濕度傳感器作為測(cè)量器件,LCM為顯示部件,蜂鳴器為提示音和報(bào)警聲輸出,由于本儀表還具有其他功能,所以設(shè)置了三個(gè)按鍵作為輸入部分,以完成多個(gè)顯示界面切換及進(jìn)行相關(guān)設(shè)置的功能。功能結(jié)構(gòu)示意圖如圖1所示:

2.硬件選型

2.1 溫度傳感器選型

以熱電偶、熱敏電阻等為主,輸出電壓、電流或頻率等模擬物理量的模擬傳感器,在需要數(shù)字信號(hào)的場(chǎng)合應(yīng)用不夠方便。近幾年涌現(xiàn)出一些數(shù)字溫度傳感器,如ADT7301、TMP205等,但經(jīng)過綜合比較,這里采用了美國(guó)Dallas公司出品的DS18B20[1],優(yōu)勢(shì)是反映快、精度高(可編程9-12位,最高0.0625℃)、體積小、誤差小(±0.5℃)、測(cè)溫范圍大(-55~125℃)、接口簡(jiǎn)單,尤其值得稱道的是其“單總線”數(shù)據(jù)傳輸方式,與單片機(jī)交換信息僅需要一根I/O線。而且,可同一總線掛接多個(gè)傳感器,每一個(gè)都有自己唯一的64位序列號(hào)。實(shí)際應(yīng)用中,采用了DS18B20的外部電源供電方式。

2.2 濕度傳感器選型

近年來市面上典型數(shù)字濕度傳感器有瑞士SHT11等型號(hào),精度高范圍大,但價(jià)格較高,這里最終選用奧松DHT11[2],該傳感器由一個(gè)電阻式感濕元件、NTC測(cè)溫元件和8位單片機(jī)組成,相比前者有較大價(jià)格優(yōu)勢(shì),精度5%RH,誤差2%RH,濕度范圍20~95%RH.而且,該傳感器也是單線制串行接口,編程上與18B20有一定相似之處。該傳感器缺點(diǎn)是不如電容型精度高。由于該傳感器溫度測(cè)量的性能指標(biāo)不及DS18B20,所以只用了其濕度測(cè)量功能。

2.3 MCU選型

鑒于溫濕度測(cè)量實(shí)時(shí)性要求不高,數(shù)字化溫度、濕度傳感器及液晶顯示模塊對(duì)M C U速度要求也不算高,以上器件加上鍵盤、蜂鳴器等硬件資源占用的引腳數(shù)也不多,所以采用經(jīng)典的51系列單片機(jī)是很好的選擇。尤其美國(guó)Atmel公司生產(chǎn)的AT89S5x系列單片機(jī)[3],質(zhì)優(yōu)價(jià)廉,完全滿足上述要求,而且具有ISP下載功能,可實(shí)現(xiàn)在對(duì)板載芯片進(jìn)行程序升級(jí),十分方便。最終C51程序經(jīng)編譯生成的HEX文件為15k大小,可下載到AT89S52芯片。

2.4 顯示部件選型

為了提升儀表外觀檔次,沒有使用傳統(tǒng)數(shù)碼管,而是采用了應(yīng)用較廣的字符點(diǎn)陣型液晶顯示模組LCM1602,其具有微功耗、體積小、編程顯示靈活等特點(diǎn)。由于各廠家1602液晶大都基于HD44780液晶芯片的,故控制原理相同,方便替換。該液晶型號(hào)國(guó)內(nèi)外生產(chǎn)廠家不少,如長(zhǎng)沙太陽人、深圳金馬等,價(jià)格約十元。應(yīng)用時(shí)通過模擬口線方式將LCM1602與MCU連接。

2.5 電源選型

本系統(tǒng)MCU、傳感器等都可使用+5V供電,故需配置直流電源。這里采用兩種供電方案(開關(guān)切換),一是外置220VAC轉(zhuǎn)5VDC的線性電源或開關(guān)電源,PCB板上只留一個(gè)DC-002電源插座,二是采用兩節(jié)堿性電池結(jié)合Boost電路為系統(tǒng)提供電源。在采用后一方案時(shí),有MAX1674、TPS60110、SP6641A等多種芯片選擇,但從經(jīng)濟(jì)性和方便采購等方面考慮,最終選擇上海貝嶺公司的開關(guān)型DC/DC升壓穩(wěn)壓芯片BL8530[4].該芯片僅0.8V的啟動(dòng)電壓、高電流的負(fù)載驅(qū)動(dòng)能力,極低的靜態(tài)功耗(Iq5.5uA),非常適合于便攜式電池應(yīng)用的場(chǎng)合。采用了高性能、低功耗的參考電壓電路結(jié)構(gòu),同時(shí)在生產(chǎn)中引入修正技術(shù),保證了輸出電壓的高輸出精度及低溫度漂移,且對(duì)周邊電路干擾很小。

配合肖特基二極管1N5819、100uf鉭電容和33uH屏蔽功率電感,輸出電壓實(shí)測(cè)維持在4.98V,十分穩(wěn)定。

3.軟件編程

3.1 軟件流程圖

開始上電后,首先進(jìn)行系統(tǒng)初始化,包括定義IO口、設(shè)置默認(rèn)值,顯示開機(jī)畫 面等工作。然后默認(rèn)進(jìn)入顯示當(dāng)前溫度的狀態(tài),如果沒有收到DS18B20返回的存在脈沖,蜂鳴器報(bào)警且液晶有相關(guān)信息提示。軟件流程如圖2所示。

根據(jù)官方數(shù)據(jù)手冊(cè),相關(guān)溫度操作包括啟動(dòng)溫度轉(zhuǎn)換(Conver T),跳過ROM(SkipRom),寫暫存器(Write Scratchpad),設(shè)置高低溫報(bào)警寄存器TH和TL,拷貝暫存器(Copy Scratchpad),Recall E2和讀暫存器(Read Scratchpad)等。接下來進(jìn)行按鍵判斷,本儀表共有3個(gè)輸入按鍵,按鍵1是功能切換鍵,每當(dāng)按下一次則軟件狀態(tài)計(jì)數(shù)器加1,進(jìn)入相應(yīng)測(cè)試界面,且在溫度測(cè)量、濕度測(cè)量及其他幾個(gè)功能間循環(huán)。鍵2分長(zhǎng)按和短按,在溫度模式下有攝氏/華氏溫度切換、最大值保持、關(guān)閉報(bào)警等功能。鍵3有切換液晶屏手動(dòng)/自動(dòng)背光,關(guān)閉報(bào)警等功能。如果所有按鍵都沒有被按下,則先判斷當(dāng)前狀態(tài),然后判斷是否存在相應(yīng)傳感器,如果有只更新當(dāng)前溫度或濕度值,或進(jìn)入其他功能。最后返回,整個(gè)是一個(gè)大循環(huán)結(jié)構(gòu)。另外,此處僅是軟件流程圖示意圖,提供設(shè)計(jì)思路,某些具體實(shí)現(xiàn)可能會(huì)根據(jù)實(shí)際情況放到中斷里處理,更為方便。 3.2 溫度傳感器典型程序段

D S 1 8 B 2 0對(duì)時(shí)序要求非常嚴(yán)格,編程時(shí)應(yīng)確保延時(shí)程序要符合datasheet中的要求,這里首先編制了一個(gè)較精確的10us延時(shí),之后的程序中多次調(diào)用。另外,攝氏、華氏溫度的轉(zhuǎn)換,以及低于0攝氏度時(shí),需要顯示的負(fù)號(hào)等情況都可在液晶顯示溫度的程序段中考慮。典型程序如下:

3.3 濕度傳感器典型程序段

相比同樣是單總線設(shè)計(jì)的DS18B20,國(guó)產(chǎn)DHT11在編程思路上有一定相似性,但時(shí)序、移位等操作都不同,協(xié)議較前者簡(jiǎn)單。

用戶主機(jī)(M C U)發(fā)送一次開始信號(hào)后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,待主機(jī)開始信號(hào)結(jié)束后,DHT11發(fā)送響應(yīng)信號(hào),送出40bit的數(shù)據(jù),并觸發(fā)一次信采集。而操作DS18B20時(shí),MCU初始化收到應(yīng)答信號(hào)后,就可隨時(shí)發(fā)個(gè)指令寫或讀,主機(jī)有更多主動(dòng)權(quán)。按照官方產(chǎn)品手冊(cè)提供的時(shí)序,編制程序如下:

主程序、1602顯示驅(qū)動(dòng)、其他功能等程序略去。

4.結(jié)論

經(jīng)試制、長(zhǎng)時(shí)間運(yùn)行,表現(xiàn)穩(wěn)定,效果良好。在調(diào)試階段,遇到并解決了一些問題,一個(gè)比較棘手的問題是,顯示溫度時(shí)偶爾會(huì)出現(xiàn)異常數(shù)字。經(jīng)仔細(xì)分析發(fā)現(xiàn),這是由于本儀表的多按鍵、多功能而采用的多個(gè)定時(shí)器,定時(shí)器產(chǎn)生的中斷導(dǎo)致了DS18B20與MCU通信時(shí)序遭到破壞,造成傳輸?shù)臄?shù)據(jù)出錯(cuò)。本問題后來通過增加CRC8校驗(yàn),對(duì)偶然出現(xiàn)的錯(cuò)誤數(shù)據(jù)進(jìn)行舍棄得到解決。

現(xiàn)階段該溫濕度儀只作為單獨(dú)使用,在以后的升級(jí)型號(hào)中,可以加入數(shù)據(jù)存儲(chǔ)功能(如24C02芯片記錄峰值),以及多傳感器總線方式,通過上位機(jī)監(jiān)控各點(diǎn)溫濕度等功能。



關(guān)鍵詞: 數(shù)字溫濕度儀 傳感器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉