許鵬 鎖雪萍 邱鴻帥 王以忠
摘要:設(shè)計(jì)了一種基于Arduino Mega 2560和DS18B20的多點(diǎn)溫度測(cè)量系統(tǒng)。該溫度測(cè)量系統(tǒng)主要包含溫度檢測(cè)單元和控制單元兩個(gè)部分,利用DS18B20的單總線結(jié)構(gòu),實(shí)現(xiàn)了電路簡(jiǎn)單、功能可靠的多點(diǎn)溫度測(cè)量系統(tǒng)??捎糜诙帱c(diǎn)溫度測(cè)量和溫度場(chǎng)的分布測(cè)量等多種場(chǎng)合。
關(guān)鍵詞:溫度測(cè)量DS18B20Arduino單總線
中圖分類號(hào):TB393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)06-0000-00
很多場(chǎng)合都需要進(jìn)行溫度檢測(cè),最常用的方法是采用單片機(jī)和溫度傳感器配合工作。但通常使用的單片機(jī)往往不容易上手,開發(fā)周期長(zhǎng)。Arduino的出現(xiàn)解決了這一問題,它是一類便捷靈活、方便上手的開源電子原型平臺(tái)[1]。基于AVR平臺(tái),Arduino對(duì)AVR庫進(jìn)行了二次編譯封裝,將端口都進(jìn)行打包處理,因此不需要了解其內(nèi)部硬件結(jié)構(gòu)和寄存器設(shè)置,不需要用戶直接處理底層系統(tǒng),提高了應(yīng)用程序的開發(fā)效率。本文利用Arduino的便捷靈活、方便上手這一特性,并選用DS18B20作為溫度采集傳感器,設(shè)計(jì)了一套多點(diǎn)溫度測(cè)量系統(tǒng)。
1系統(tǒng)總體設(shè)計(jì)
系統(tǒng)的結(jié)構(gòu)如圖1所示,主要由溫度采集單元和Arduino主控板構(gòu)成。溫度傳感器DS18B20以單總線的連接方式將采集到的溫度數(shù)據(jù)發(fā)送給Arduino主控板,Arduino主控板通過串口將整合后的溫度數(shù)據(jù)上傳到PC端,在PC端對(duì)接收到的數(shù)據(jù)進(jìn)行顯示、存儲(chǔ)、分析。
2溫度檢測(cè)系統(tǒng)的硬件設(shè)計(jì)
2.1 主控板Arduino Mega 2560
Arduino Mega 2560是采用USB接口的核心電路板,它的處理器核心是ATmega 2560,具有54路數(shù)字輸入/輸出口,其中16路可作為PWM輸出,16路模擬輸入,4路UART接口,一個(gè)16MHz晶體振蕩器,一個(gè)USB口,一個(gè)電源插座,一個(gè)ICSP header和一個(gè)復(fù)位按鈕[2],其開發(fā)板圖如圖2所示。
與Arduino系列其他型號(hào)的開發(fā)板相比,Mega 2560是一個(gè)增強(qiáng)型的Arduino控制器,它提供了更多的輸入輸出口,可以控制更多的設(shè)備,以及擁有更大的程序空間和內(nèi)存,為以后系統(tǒng)的升級(jí)提供了硬件基礎(chǔ)。
2.2 DS18B20溫度傳感器
DS18B20是由美國(guó)DALLAS半導(dǎo)體公司推出的一種“一線總線”接口的溫度傳感器。具有體積小,硬件開銷低,抗干擾能力強(qiáng),精度高等特點(diǎn),其常見的封裝形式如圖3所示。
DS18B20采用單總線的連接方式,單總線系統(tǒng)包括一個(gè)總控制器和多個(gè)DS18B20從機(jī)構(gòu)成。通過單總線訪問DS18B20的基本協(xié)議為:初始化、ROM操作命令、存儲(chǔ)器操作命令和執(zhí)行/數(shù)據(jù)四個(gè)步驟[3]。
由于每個(gè)DS18B20都有一個(gè)獨(dú)特的片序列號(hào),所以多只DS18B20可以同時(shí)連在一根單線總線上,系統(tǒng)中數(shù)據(jù)口為主控板的P10引腳,用于讀寫和溫度轉(zhuǎn)換,電源由主控板的5V電壓口直接提供,無需外部電源[4]。
2.3 溫度測(cè)量電路設(shè)計(jì)
本文設(shè)計(jì)的溫度檢測(cè)系統(tǒng)利用了主控板自帶的5V電源直接供電,省去了外部電源電路的設(shè)計(jì)。并采用了一個(gè)4.7KΩ的上拉電阻驅(qū)動(dòng)多個(gè)DS18B20,省去了大量的上拉電阻,避免了因總線上節(jié)點(diǎn)過多而造成供電不足,同時(shí)進(jìn)一步提高了溫度傳感器布線的靈活性,設(shè)計(jì)的溫度測(cè)量電路如圖4所示。
3溫度檢測(cè)系統(tǒng)的軟件設(shè)計(jì)
首先Arduino在數(shù)據(jù)線上發(fā)出低復(fù)位脈沖,然后恢復(fù)總線為高,隨后DS18B20發(fā)出響應(yīng)脈沖,Arduino發(fā)現(xiàn)有響應(yīng)脈沖后再搜索,按位逐個(gè)取得器件的序列號(hào),也就是器件地址,再對(duì)各個(gè)器件發(fā)出轉(zhuǎn)換命令進(jìn)行測(cè)溫,由每個(gè)DS18B20測(cè)溫并把結(jié)果保存到自己的RAM中,經(jīng)過轉(zhuǎn)換時(shí)間后,由Arduino按地址讀出每個(gè)DS18B20的測(cè)溫結(jié)果,將溫度數(shù)據(jù)發(fā)送到串口,上傳至PC,其程序主流程圖如圖5所示。
4系統(tǒng)實(shí)現(xiàn)及實(shí)驗(yàn)
實(shí)現(xiàn)了一個(gè)13點(diǎn)的溫度測(cè)量系統(tǒng),為了驗(yàn)證該系統(tǒng)的可靠性,進(jìn)行了溫度場(chǎng)的分布測(cè)量實(shí)驗(yàn)。實(shí)驗(yàn)中采用醫(yī)用特定電磁波治療儀(TDP)的治療燈頭[5]的溫度場(chǎng)分布作為測(cè)量對(duì)象,測(cè)試系統(tǒng)實(shí)物圖如圖6所示。
為得到醫(yī)用TDP治療燈頭的溫度場(chǎng)分布,進(jìn)行了多次測(cè)溫實(shí)驗(yàn),燈頭與測(cè)溫系統(tǒng)的垂直距離分別取10cm,20cm,30cm,測(cè)溫范圍為50cm2的水平面。關(guān)于空間內(nèi)的溫度數(shù)據(jù)分析,本文以垂直距離為10cm時(shí)的溫度數(shù)據(jù)為例進(jìn)行了3D建模分析,其空間分布情況如圖7所示,其中Z軸表示攝氏溫度值,X-Y平面為10cm處的測(cè)溫水平面,從圖中可以看出,燈頭中心處溫度最高,隨著與燈頭中心距離的增加,溫度逐漸降低。
5 結(jié)語
本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于Arduino的多點(diǎn)溫度測(cè)量系統(tǒng),并利用該系統(tǒng)測(cè)量了醫(yī)用TDP治療燈頭的溫度場(chǎng)分布。TDP燈頭的結(jié)構(gòu)為圓盤形,其電熱絲由內(nèi)到外環(huán)繞在圓盤內(nèi),故其溫度分布為中心處最高,由內(nèi)到外逐漸降低。對(duì)系統(tǒng)的測(cè)溫?cái)?shù)據(jù)進(jìn)行分析后得到其溫度場(chǎng)呈圓形分布,這與TDP燈頭的實(shí)際溫度場(chǎng)分布一致。實(shí)驗(yàn)結(jié)果表明本系統(tǒng)具有良好的實(shí)用性和可靠性。
參考文獻(xiàn)
[1]趙廣元,王文慶,蔡秀梅.基于Arduino和Matlab/Simulink的仿真環(huán)境設(shè)計(jì)研究
[J].測(cè)控技術(shù),2014,38(08):123-129.
[2]賈瑞.基于ArduinoMega2560的無線監(jiān)控小車設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2013,
(10):144-146.
[3]覃鮮艷.基于DS18B20的無線測(cè)溫系統(tǒng)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2012 .
[4]何宗虎,張德祥,張玲君.基于單片機(jī)的高精度溫度測(cè)量系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技
術(shù).2011,34(09):131-135.
[5]趙宏濤.TDP治療儀的故障分析與維護(hù)[J].醫(yī)療裝備,2015,(07):125-125.