「雕爺學(xué)編程」Arduino動手做(39)——DS18B20溫度傳感器

37款傳感器與模塊的提法,在網(wǎng)絡(luò)上廣泛流傳灶壶,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和模塊,依照實踐出真知(一定要動手做)的理念构回,以學(xué)習(xí)和交流為目的,這里準備逐一動手試試做實驗疏咐,不管成功與否纤掸,都會記錄下來---小小的進步或是搞不定的問題,希望能夠拋磚引玉浑塞。?

【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)

實驗三十九:DS18B20單總線數(shù)字溫度傳感器模塊


DS18B20

是世界第一片支持"一線總線"接口的溫度傳感器借跪,一線總線獨特而且經(jīng)濟的特點,使用戶可輕松組建傳感器網(wǎng)絡(luò)酌壕,為測量系統(tǒng)構(gòu)建系統(tǒng)引入全新要概念掏愁。



DS18B20 的內(nèi)部結(jié)構(gòu)主要由64 位ROM、溫度靈敏元件仅孩、內(nèi)部存儲器和配置寄存器4 部分組成托猩,如上圖所示。

( 1) 64 位ROM辽慕。它的內(nèi)容是64 位序列號京腥,它可以被看作是該DS18B20 的地址序列碼,其作用是使每個DS18B20 都各不相同溅蛉,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20 的目的公浪。

( 2) 溫度靈敏元件他宛。它完成對溫度的測量,測量后的結(jié)果存儲在2 個8 b 的溫度寄存器中欠气。

( 3) 內(nèi)部存儲器厅各。內(nèi)部存儲器包括一個高速暫存RAM 和一個非易失性的可電擦除的E2 PROM,后者存放高溫度和低溫度觸發(fā)器TH预柒、TL 以及配置寄存器队塘。


測溫原理

用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進行計數(shù)來得到溫度值宜鸯。計數(shù)器被預(yù)置到對應(yīng)于-55攝氏度的一個值憔古。如果計數(shù)器在門周期結(jié)束前到達0,則溫度寄存器(同樣初始化到-55攝氏度)的值增加,表明所測溫度大于-55攝氏度淋袖。

1鸿市。溫度系數(shù)振蕩器是指一種振蕩器,它的振蕩頻率與溫度之間有一個特定的關(guān)系即碗,即不同的溫度對應(yīng)不同的振蕩頻率焰情。反之,測量出振蕩器的輸出頻率剥懒,就可測量出溫度值内舟。

2.高溫度系數(shù)振蕩器:它的振蕩頻率受溫度的影響很大,溫度稍有變化初橘,頻率就會變化很多谒获,即對溫度敏感,多用于溫度傳感器壁却。

3.低溫度系數(shù)振蕩器:它的振蕩頻率受溫度的影響很小批狱,即使溫度變化很大,它的頻率也基本不變展东。?

??同時赔硫,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定盐肃,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性爪膊。然后計數(shù)器又開始計數(shù)直到 0,如果門周期仍未結(jié)束砸王,將重復(fù)這一過程推盛。 斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力谦铃。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的耘成。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值瘪菌。


主要特性

(1) 獨特的單線接口方式撒会,與單片機連接時僅需要一條口線;

(2) 測溫范圍為- 55~ + 125℃师妙,在- 10~ + 85℃范圍內(nèi)精度為±0. 5 ℃诵肛;

(3) 通過編程可實現(xiàn)9~ 12 位的數(shù)字讀數(shù)方式;

(4) 用戶可自設(shè)定非易失性的報警上下限值默穴;

(5) 外圍電路簡單怔檩,使用時不需要外圍元件,可用數(shù)據(jù)總線供電蓄诽,電壓范圍為3. 0 ~ 5. 5 V 無需備用電源珠洗;

(6)無需外部元件,獨特的一線接口,電源和信號混合在一起;

(7)每個芯片唯一編碼若专,支持聯(lián)網(wǎng)尋址,零功耗等待蝴猪;

(8)DS18B20 有TO 92调衰、SOIC 及CSP 封裝,其中VDD 為外接供電電源輸入端自阱,GND 為公共地嚎莉,DQ為數(shù)字信號輸出端;

(9)適用于冷凍庫沛豌,糧倉趋箩,儲罐,GPS衛(wèi)星定位系統(tǒng)加派,電訊機房叫确,電力機房,電纜線槽等測溫和控制領(lǐng)域芍锦。


部件描述

存儲器---DS18B20的存儲器包括高速暫存器RAM和可電擦除RAM竹勉,可電擦除RAM又包括溫度觸發(fā)器TH和TL,以及一個配置寄存器娄琉。存儲器能完整的確定一線端口的通訊次乓,數(shù)字開始用寫寄存器的命令寫進寄存器,接著也可以用讀寄存器的命令來確認這些數(shù)字孽水。當(dāng)確認以后就可以用復(fù)制寄存器的命令來將這些數(shù)字轉(zhuǎn)移到可電擦除RAM中票腰。當(dāng)修改過寄存器中的數(shù)時,這個過程能確保數(shù)字的完整性女气。高速暫存器RAM是由8個字節(jié)的存儲器組成杏慰;用讀寄存器的命令能讀出第九個字節(jié),這個字節(jié)是對前面的八個字節(jié)進行校驗。

64-位光刻ROM---前8位是DS18B20的自身代碼逃默,接下來的48位為連續(xù)的數(shù)字代碼鹃愤,最后的8位是對前56位的CRC校驗。64-位的光刻ROM又包括5個ROM的功能命令:讀ROM完域,匹配ROM软吐,跳躍ROM,查找ROM和報警查找吟税。?

外部電源的連---DS18B20可以使用外部電源VDD凹耙,也可以使用內(nèi)部的寄生電源。當(dāng)VDD端口接3.0V—5.5V的電壓時是使用外部電源肠仪;當(dāng)VDD端口接地時使用了內(nèi)部的寄生電源肖抱。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻异旧。

配置寄存器---配置不同的位數(shù)來確定溫度和數(shù)字的轉(zhuǎn)化意述∷庇迹可以知道R1荤崇,R0是溫度的決定位,由R1潮针,R0的不同組合可以配置為9位术荤,10位,11位每篷,12位的溫度顯示瓣戚。這樣就可以知道不同的溫度轉(zhuǎn)化位所對應(yīng)的轉(zhuǎn)化時間,四種配置的分辨率分別為0.5℃焦读,0.25℃子库,0.125℃和0.0625℃,出廠時以配置為12位矗晃。

溫度的讀取---DS18B20在出廠時以配置為12位刚照,讀取溫度時共讀取16位,前5個位為符號位喧兄,當(dāng)前5位為1時无畔,讀取的溫度為負數(shù);當(dāng)前5位為0時吠冤,讀取的溫度為正數(shù)浑彰。溫度為正時讀取方法為:將16進制數(shù)轉(zhuǎn)換成10進制即可。溫度為負時讀取方法為:將16進制取反后加1拯辙,再轉(zhuǎn)換成10進制即可郭变。例:0550H = +85 度颜价,F(xiàn)C90H = -55 度。


使用要點

DS18B20 采用的是單線總線協(xié)議方式诉濒,即在一條數(shù)據(jù)線上實現(xiàn)數(shù)據(jù)的雙向傳輸周伦,而單片機硬件上不支持單總線協(xié)議,因此必須采用軟件方法來模擬單總線的協(xié)議是序來完成對DS18B20 芯片的訪問未荒。由于DS18B20 是在一根I/ O 線上讀寫數(shù)據(jù)专挪,因此對讀寫的數(shù)據(jù)位有嚴格的時序要求,它有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性片排。該協(xié)議定義了幾種信號的時序: 初始化時序寨腔、讀時序、寫時序率寡。所有時序都是將單片機作為主設(shè)備迫卢,DS18B20 作為從設(shè)備,而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始冶共,如果要求DS18B20 回送數(shù)據(jù)乾蛤,在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收捅僵。


幾個應(yīng)用電路


DS18B20單總線數(shù)字溫度傳感器模塊

一家卖、尺寸:長28mm X寬12mm X高10mm

二、主要芯片:18B20溫度傳感器

三命咐、工作電壓:直流5V


模塊特點

1、分辨率調(diào)整范圍:9-12位

2谐岁、帶安裝孔方便安裝醋奠,孔徑:2.5

3、溫度測量范圍:-55~+125℃

4伊佃、溫度測量精度:0.5℃

5窜司、工作電壓:DC5V

6、數(shù)字信號輸出


引腳接線

Arduino Uno? ?? ?<------>? ?? ?? ?18B20溫度傳感器模塊??

Pin 3? ?? ?? ?? ?? ?? ?<------>? ?? ?? ? OUT (S)? ?? ?

5V? ?? ?? ?? ?? ?? ?? ? <------>? ?? ?? ? VCC? ?

GND? ?? ?? ?? ?? ?? ? <------>? ?? ?? ? GND??


搜索荒给、下載庫文件-DallasTemperature



后來又安裝了一個庫-OneWire

/*

【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)

實驗三十九:DS18B20單總線數(shù)字溫度傳感器模塊

*/

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 3

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

void setup(void)

{

??Serial.begin(9600);

??Serial.println("Dallas Temperature IC Control Library Demo");

??sensors.begin();

}

void loop(void)

{

??Serial.print(" Requesting temperatures...");

??sensors.requestTemperatures();

??Serial.println("DONE");

??Serial.print("Temperature for Device 1 is: ");

??Serial.print(sensors.getTempCByIndex(0));??

??

??delay(500);

}


用手觸摸DS18B20爬凑,溫度升高



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喊暖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子议薪,更是在濱河造成了極大的恐慌,老刑警劉巖媳友,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斯议,死亡現(xiàn)場離奇詭異,居然都是意外死亡醇锚,警方通過查閱死者的電腦和手機哼御,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門坯临,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恋昼,你說我怎么就攤上這事看靠。” “怎么了液肌?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵挟炬,是天一觀的道長。 經(jīng)常有香客問我矩屁,道長辟宗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任吝秕,我火速辦了婚禮泊脐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烁峭。我一直安慰自己容客,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布约郁。 她就那樣靜靜地躺著缩挑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鬓梅。 梳的紋絲不亂的頭發(fā)上供置,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音绽快,去河邊找鬼芥丧。 笑死,一個胖子當(dāng)著我的面吹牛坊罢,可吹牛的內(nèi)容都是我干的续担。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼活孩,長吁一口氣:“原來是場噩夢啊……” “哼物遇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起憾儒,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤询兴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后起趾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕉朵,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年阳掐,在試婚紗的時候發(fā)現(xiàn)自己被綠了始衅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冷蚂。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖汛闸,靈堂內(nèi)的尸體忽然破棺而出蝙茶,到底是詐尸還是另有隱情,我是刑警寧澤诸老,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布隆夯,位于F島的核電站,受9級特大地震影響别伏,放射性物質(zhì)發(fā)生泄漏蹄衷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一厘肮、第九天 我趴在偏房一處隱蔽的房頂上張望愧口。 院中可真熱鬧,春花似錦类茂、人聲如沸耍属。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厚骗。三九已至,卻和暖如春兢哭,著一層夾襖步出監(jiān)牢的瞬間领舰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工迟螺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冲秽,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓煮仇,卻偏偏與公主長得像劳跃,于是被迫代替她去往敵國和親谎仲。 傳聞我的和親對象是個殘疾皇子浙垫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容