0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32的DS18B20溫度傳感器設(shè)計(jì)

1126626497 ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-03-07 11:44 ? 次閱讀

?一、環(huán)境介紹

編程軟件: keil5

操作系統(tǒng): win10

MCU型號(hào): STM32F103C8T6

STM32編程方式: 寄存器開發(fā) (方便程序移植到其他單片機(jī))

溫度傳感器 DS1820

DS18B20是一個(gè)數(shù)字溫度傳感器,采用的是單總線時(shí)序與主機(jī)通信,只需要一根線就可以完成溫度數(shù)據(jù)讀取;

DS18B20內(nèi)置了64位產(chǎn)品序列號(hào),方便識(shí)別身份,在一根線上可以掛接多個(gè)DS18B20傳感器,通過64位身份驗(yàn)證,可以分別讀取來至不同傳感器采集的溫度信息。

二、DS18B20介紹

2.1 DS18B20 的主要特征

1. 全數(shù)字溫度轉(zhuǎn)換及輸出。

2. 先進(jìn)的單總線數(shù)據(jù)通信。

3. 最高 12 位分辨率,精度可達(dá)土 0.5 攝氏度。

4. 12 位分辨率時(shí)的最大工作周期為 750 毫秒。

5. 可選擇寄生工作方式。

6. 檢測(cè)溫度范圍為–55° C ~+125° C (–67° F ~+257° F)

7. 內(nèi)置 EEPROM,限溫報(bào)警功能。

8. 64位光刻 ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。

9. 多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。

基于STM32的DS18B20溫度傳感器設(shè)計(jì)

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

2.2 DS18B20 引腳功能

GND 電壓地

DQ 單數(shù)據(jù)總線

VDD 電源電壓

NC 空引腳

2.3 DS18B20 工作原理及應(yīng)用

DS18B20 的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。其一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理。

18B20 共有三種形態(tài)的存儲(chǔ)器資源,它們分別是:ROM 只讀存儲(chǔ)器,用于存放 DS18B20ID 編碼,其前 8 位是單線系列編碼(DS18B20 的編碼是19H),后面 48 位是芯片唯一的序列號(hào),最后 8 位是以上 56 的位的 CRC 碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改,DS18B20 一共有 64 位 ROM。

RAM 數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失, DS18B20 共 9 個(gè)字節(jié) RAM,每個(gè)字節(jié)為 8 位。第 1、 2 個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第 3、 4 個(gè)字節(jié)是用戶 EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第 5 個(gè)字節(jié)則是用戶第 3 個(gè) EEPROM的鏡像。第 6、 7、 8 個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第 9 個(gè)字節(jié)為前 8 個(gè)字節(jié)的 CRC 碼。 EEPROM 非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),DS18B20 共 3 位 EEPROM,并在 RAM 都存在鏡像,以方便用戶操作。

基于STM32的DS18B20溫度傳感器設(shè)計(jì)

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

DS18B20默認(rèn)工作在12位分辨率模式,轉(zhuǎn)換后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中(最前面的兩個(gè)字節(jié)),二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。或者使用位運(yùn)算方式提取溫度: 小數(shù)位是占用的是低4位,高位是整數(shù)位(不考慮負(fù)數(shù)情況)。

2.4DS18B20 芯片 ROM 指令表

1. Read ROM(讀 ROM) [33H] (方括號(hào)中的為 16 進(jìn)制的命令字)
這個(gè)命令允許總線控制器讀到 DS18B20 的 64 位 ROM。只有當(dāng)總線上只存在一個(gè) DS18B20 的時(shí)候才可以使用此指令,如果掛接不只一個(gè),當(dāng)通信時(shí)將會(huì)發(fā)生數(shù)據(jù)沖突

2. atch ROM(指定匹配芯片) [55H]
這個(gè)指令后面緊跟著由控制器發(fā)出了 64 位序列號(hào),當(dāng)總線上有多只 DS18B20 時(shí),只有與控制發(fā)出的序列號(hào)相同的芯片才可以做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適應(yīng)單芯片和多芯片掛接。

3. Skip ROM(跳躍 ROM 指令) [CCH]
這條指令使芯片不對(duì) ROM 編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時(shí)間則可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯(cuò)誤出現(xiàn)。

4. Search ROM(搜索芯片) [F0H]
在芯片初始化后,搜索指令允許總線上掛接多芯片時(shí)用排除法識(shí)別所有器件的 64 位 ROM。

5. Alarm Search(報(bào)警芯片搜索) [ECH]
在多芯片掛接的情況下,報(bào)警芯片搜索指令只對(duì)附合溫度高于 TH 或小于 TL 報(bào)警條件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將被保持,直到再一次測(cè)得溫度什達(dá)不到報(bào)警條件為止。

6. Write Scratchpad (向 RAM 中寫數(shù)據(jù)) [4EH]
這是向 RAM 中寫入數(shù)據(jù)的指令,隨后寫入的兩個(gè)字節(jié)的數(shù)據(jù)將會(huì)被存到地址 2(報(bào)警 RAM 之 TH)和地址 3(報(bào)警 RAM 之 TL)。寫入過程中可以用復(fù)位信號(hào)中止寫入。

7. Read Scratchpad (從 RAM 中讀數(shù)據(jù)) [BEH]
此指令將從 RAM 中讀數(shù)據(jù),讀地址從地址 0 開始,一直可以讀到地址 9,完成整個(gè) RAM 數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號(hào)中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時(shí)間。

8. Copy Scratchpad (將 RAM 數(shù)據(jù)復(fù)制到 EEPROM 中) [48H]
此指令將 RAM 中的數(shù)據(jù)存入 EEPROM 中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于 EEPROM 儲(chǔ)存處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。
在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持 10MS,來維持芯片工作。

9. Convert T(溫度轉(zhuǎn)換) [44H]
收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入 RAM 的第 1、 2 地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持 500MS,來維持芯片工作。

10. Recall EEPROM(將 EEPROM 中的報(bào)警值復(fù)制到 RAM) [B8H]
此指令將 EEPROM 中的報(bào)警值復(fù)制到 RAM 中的第 3、 4 個(gè)字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時(shí)將被自動(dòng)執(zhí)行。這樣 RAM 中的兩個(gè)報(bào)警字節(jié)位將始終為 EEPROM 中數(shù)據(jù)的鏡像。

11. Read Power Supply(工作方式切換) [B4H]
此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片會(huì)返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。

2.5 DS18B20時(shí)序圖

2.5.1 DS18B20 復(fù)位及應(yīng)答關(guān)系示意圖

基于STM32的DS18B20溫度傳感器設(shè)計(jì)

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png基于STM32的DS18B20溫度傳感器設(shè)計(jì)

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

每一次通信之前必須進(jìn)行復(fù)位,復(fù)位的時(shí)間、等待時(shí)間、回應(yīng)時(shí)間應(yīng)嚴(yán)格按時(shí)序編程。

DS18B20 讀寫時(shí)間隙:DS18B20的數(shù)據(jù)讀寫是通過時(shí)間隙處理位和命令字來確認(rèn)信息交換的。

2.5.2 向DS18B20寫數(shù)據(jù)0和數(shù)據(jù)1

基于STM32的DS18B20溫度傳感器設(shè)計(jì)

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

在寫數(shù)據(jù)時(shí)間隙的前 15uS 總線需要是被控制器拉置低電平,而后則將是芯片對(duì)總線數(shù)據(jù)的采樣時(shí)間,采樣時(shí)間在 15~60uS,采樣時(shí)間內(nèi)如果控制器將總線拉高則表示寫“1”,如果控制器將總線拉低則表示寫“0”。

每一位的發(fā)送都應(yīng)該有一個(gè)至少 15uS的低電平起始位,隨后的數(shù)據(jù)“0”或“1”應(yīng)該在 45uS 內(nèi)完成。

整個(gè)位的發(fā)送時(shí)間應(yīng)該保持在 60~120uS,否則不能保證通信的正常。

注意: DS18B20讀寫數(shù)據(jù)都是從低位開始傳輸。

2.5.3 從DS18B20讀數(shù)據(jù)0和數(shù)據(jù)1

基于STM32的DS18B20溫度傳感器設(shè)計(jì)

?

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

讀時(shí)間隙時(shí)控制時(shí)的采樣時(shí)間應(yīng)該更加的精確才行,讀時(shí)間隙時(shí)也是必須先由主機(jī)產(chǎn)生至少1uS的低電平,表示讀時(shí)間的起始。隨后在總線被釋放后的 15uS 中 DS18B20 會(huì)發(fā)送內(nèi)部數(shù)據(jù)位,這時(shí)控制如果發(fā)現(xiàn)總線為高電平表示讀出“1”,如果總線為低電平則表示讀出數(shù)據(jù)“0”。每一位的讀取之前都由控制器加一個(gè)起始信號(hào)。

注意:必須在讀間隙開始的 15uS 內(nèi)讀取數(shù)據(jù)位才可以保證通信的正確。

在通信時(shí)是以 8 位“0”或“1”為一個(gè)字節(jié),字節(jié)的讀或?qū)懯菑牡臀婚_始的。

2.5.4 讀取一次溫度的順序(總線上只有單個(gè)DS18B20情況)

1. 發(fā)送復(fù)位信號(hào)

2. 檢測(cè)回應(yīng)信號(hào)

3. 發(fā)送0xCC

4. 發(fā)送0x44

5. 發(fā)送復(fù)位信號(hào)

6. 檢測(cè)回應(yīng)信號(hào)

7. 寫0xcc

8. 寫0xbe

9. 循環(huán)8次讀取溫度低字節(jié)

10. 循環(huán)8次讀取溫度高字節(jié)

11. 合成16位溫度數(shù)據(jù),處理

三、驅(qū)動(dòng)代碼

3.1 DS18B20.c

#include "ds18b20.h"

/*
函數(shù)功能: DS18B20初始化
硬件連接: PB15
*/
void DS18B20_Init(void)
{
		RCC->APB2ENR|=1<<3; //PB
		GPIOB->CRH&=0x0FFFFFFF;
		GPIOB->CRH|=0x30000000;
		GPIOB->ODR|=1<<15; //上拉
}


/*
函數(shù)功能: 檢測(cè)DS18B20設(shè)備是否存在
返回值  : 1表示設(shè)備不存在 0表示設(shè)備正常
*/
u8 DS18B20_CheckDevice(void)  //包含了復(fù)位脈沖、檢測(cè)存在脈沖
{
		DS18B20_OUTPUT_MODE();//初始化為輸出模式
		DS18B20_OUT=0;        //產(chǎn)生復(fù)位脈沖
		DelayUs(750);         //產(chǎn)生750us的低電平
		DS18B20_OUT=1;        //釋放總線
		DelayUs(15);          //等待DS18B20回應(yīng)
		if(DS18B20_CleckAck())//檢測(cè)存在脈沖
		{
				return 1;
		}
		return 0;
}

/*
函數(shù)功能: 檢測(cè)DS18B20設(shè)備的存在脈沖
返回值  : 1表示錯(cuò)誤 0表示正常
*/
u8 DS18B20_CleckAck(void)
{
		u8 cnt=0;
		DS18B20_INPUT_MODE();//初始化為輸入模式
		while(DS18B20_IN&&cnt<200) //等待DS18B20響應(yīng)存在脈沖
		{
				DelayUs(1);
				cnt++;
		}
		if(cnt>=200)return 1; //錯(cuò)誤
		
		cnt=0;
		while((!DS18B20_IN)&&cnt<240) //等待DS18B20釋放總線
		{
				DelayUs(1);
				cnt++;
		}
		if(cnt>=240)return 1; //錯(cuò)誤
		return 0;
}


/*
函數(shù)功能: 寫一個(gè)字節(jié)
首先學(xué)會(huì)如何寫一個(gè)位。
*/
void DS18B20_WriteByte(u8 cmd)
{
		u8 i;
		DS18B20_OUTPUT_MODE(); //初始化為輸出模式
		for(i=0;i<8;i++)
	  {
				DS18B20_OUT=0;  //產(chǎn)生寫時(shí)間間隙(寫開始)
				DelayUs(2);
				DS18B20_OUT=cmd&0x01; //發(fā)送實(shí)際的數(shù)據(jù)位
				DelayUs(60);    //等待寫完成
				DS18B20_OUT=1;  //釋放總線,準(zhǔn)備下一次發(fā)送
				cmd>>=1;        //繼續(xù)發(fā)送下一位數(shù)據(jù)
		}
}

/*
函數(shù)功能: 讀一個(gè)字節(jié)
首先學(xué)會(huì)如何讀一個(gè)位。
*/
u8 DS18B20_ReadByte(void)
{
	 u8 i,data=0;	
	 for(i=0;i<8;i++)
	 {
			DS18B20_OUTPUT_MODE(); //初始化為輸出模式
			DS18B20_OUT=0;  //產(chǎn)生讀時(shí)間間隙(讀開始)
			DelayUs(2);
			DS18B20_OUT=1;  //釋放總線
			DS18B20_INPUT_MODE(); //初始化為輸入模式
			DelayUs(8);    //等待DS18B20的數(shù)據(jù)輸出
			data>>=1;      //高位補(bǔ)0,默認(rèn)以0為準(zhǔn)
		  if(DS18B20_IN) data|=0x80;
			DelayUs(60);
			DS18B20_OUT=1;  //釋放總線,等待讀取下一位數(shù)據(jù)
	 }
	 return data;
}


/*
函數(shù)功能: 讀取一次DS18B20的溫度數(shù)據(jù)
返 回 值: 讀取的溫度數(shù)據(jù)
考慮的情況:  總線上只是接了一個(gè)DS18B20的情況
*/
u16 DS18B20_ReadTemp(void)
{
	  u16 temp=0;
		u8 temp_H,temp_L;
	  DS18B20_CheckDevice();   //發(fā)送復(fù)位脈沖、檢測(cè)存在脈沖
		DS18B20_WriteByte(0xCC); //跳過ROM序列檢測(cè)
		DS18B20_WriteByte(0x44); //啟動(dòng)一次溫度轉(zhuǎn)換
		
		//等待溫度轉(zhuǎn)換完成
		while(DS18B20_ReadByte()!=0xFF){}
		
		DS18B20_CheckDevice();   //發(fā)送復(fù)位脈沖、檢測(cè)存在脈沖
		DS18B20_WriteByte(0xCC); //跳過ROM序列檢測(cè)
		DS18B20_WriteByte(0xBE); //讀取溫度
		
		temp_L=DS18B20_ReadByte(); //讀取的溫度低位數(shù)據(jù)
		temp_H=DS18B20_ReadByte(); //讀取的溫度高位數(shù)據(jù)
		temp=temp_L|(temp_H<<8);   //合成溫度
		return temp;
}


3.2 DS18B20.h

#ifndef DS18B20_H
#define DS18B20_H
#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#include "ds18b20.h"
#include "usart.h"

/*封裝接口*/

//初始化DS18B20為輸入模式
#define DS18B20_INPUT_MODE() {GPIOB->CRH&=0x0FFFFFFF;GPIOB->CRH|=0x80000000;}

//初始化DS18B20為輸出模式
#define DS18B20_OUTPUT_MODE(){GPIOB->CRH&=0x0FFFFFFF;GPIOB->CRH|=0x30000000;}

//DS18B20 IO口輸出
#define DS18B20_OUT PBout(15)

//DS18B20 IO口輸入
#define DS18B20_IN PBin(15) 

//函數(shù)聲明
u8 DS18B20_CleckAck(void);
u8 DS18B20_CheckDevice(void);
void DS18B20_Init(void);
u16 DS18B20_ReadTemp(void);
u8 DS18B20_ReadByte(void);
void DS18B20_WriteByte(u8 cmd);
#endif
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

3.3 延時(shí)函數(shù)

/*
函數(shù)功能: 延時(shí)us單位
*/
void DelayUs(int us)
{
#ifdef	_SYSTICK_IRQ_
	int i,j;
	for(i=0;iVAL=0;         //CNT計(jì)數(shù)器值	
	SysTick->LOAD=9*us;     //9表示1us
	SysTick->CTRL|=1<<0;    //開啟定時(shí)器	
	do
	{
			tmp=SysTick->CTRL; //讀取狀態(tài)
	}while((!(tmp&1<<16))&&(tmp&1<<0));
	SysTick->VAL=0;         //CNT計(jì)數(shù)器值	
	SysTick->CTRL&=~(1<<0); //關(guān)閉定時(shí)器	
#endif	
};i++)>

3.4 main.c 調(diào)用DS18B20讀取溫度打印到串口

#include "stm32f10x.h"
#include "ds18b20.h"

u8 DS18B20_ROM[8]; //存放DS18B20的64為ROM編碼

int main(void)
{
	u16 temp;
	USARTx_Init(USART1,72,115200);//串口1的初始化
	DS18B20_Init();   //DS18B20初始化
	
	/*1. 讀取DS18B20的64位ROM編碼*/
	//發(fā)送復(fù)位脈沖、檢測(cè)存在脈沖
	while(DS18B20_CheckDevice()) 
	{
			printf("DS18B20設(shè)備不存在!\n");
			DelayMs(500);
	}
	//發(fā)送讀取64為ROM編碼的命令
	DS18B20_WriteByte(0x33);
	
	//循環(huán)讀取64位ROM編碼
	for(i=0;i<8;i++)
	{
			DS18B20_ROM[i]=	DS18B20_ReadByte();
			printf("DS18B20_ROM[%d]=0x%X\n",i,DS18B20_ROM[i]);
	}
	
	while(1)
	{
			/*2. 同時(shí)操作總線上所有的DS18B20開始轉(zhuǎn)換溫度*/
			DS18B20_CheckDevice();   //發(fā)送復(fù)位脈沖、檢測(cè)存在脈沖
			DS18B20_WriteByte(0xCC); //跳過ROM序列檢測(cè)
			DS18B20_WriteByte(0x44); //啟動(dòng)一次溫度轉(zhuǎn)換(讓總線上所有的DS18B20都轉(zhuǎn)換溫度)
			DelayMs(500);  //等待線上所有的DS18B20溫度轉(zhuǎn)換完成
			
			/*3. 單個(gè)針對(duì)性讀取每個(gè)DS18B20的溫度*/
			DS18B20_CheckDevice();   //發(fā)送復(fù)位脈沖、檢測(cè)存在脈沖
			DS18B20_WriteByte(0x55); //發(fā)送匹配ROM的命令
			for(i=0;i<8;i++)         //發(fā)送64位編碼
		    {
					DS18B20_WriteByte(DS18B20_ROM[i]); 
			}
			DS18B20_WriteByte(0xBE);      //讀取溫度
			temp=DS18B20_ReadByte();      //讀取的溫度低位數(shù)據(jù)
		    temp|=DS18B20_ReadByte()<<8;  //讀取的溫度高位數(shù)據(jù)
			printf("temp1=%d.%d\n",temp>>4,temp&0xF);
			printf("temp2=%f\n",temp*0.0625);
			
			DelayMs(500);
	}	
}

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

審核編輯:湯梓紅


?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2545

    文章

    50445

    瀏覽量

    751038
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349916
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354291
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DS18B20溫度傳感器的工作原理和硬件設(shè)計(jì)

    通過本文可以了解DS18B20溫度傳感器工作原理、硬件設(shè)計(jì)、DS18B20單總線接口驅(qū)動(dòng)編寫。
    的頭像 發(fā)表于 10-24 14:38 ?404次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的工作原理和硬件設(shè)計(jì)

    ds18b20傳感器的使用方法

    DS18B20是一種廣泛使用的數(shù)字溫度傳感器,它基于1-Wire(單總線)通信協(xié)議。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B20
    的頭像 發(fā)表于 10-18 14:52 ?319次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數(shù)字溫度傳感器,它基于1-Wire(一線)通信協(xié)議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B2
    的頭像 發(fā)表于 10-18 14:50 ?490次閱讀

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數(shù)字溫度傳感器,它具有高精度、低功耗和易于使用的特點(diǎn)。 DS18B20溫度
    的頭像 發(fā)表于 09-03 16:51 ?483次閱讀

    ds18b20溫度傳感器是什么類型

    DS18B20溫度傳感器是一種數(shù)字溫度傳感器,它屬于單總線(One-Wire)數(shù)字溫度
    的頭像 發(fā)表于 09-03 16:46 ?685次閱讀

    ds18b20溫度傳感器和dht11的區(qū)別

    DS18B20和DHT11都是常用的溫度和濕度傳感器,它們?cè)谠S多項(xiàng)目和應(yīng)用中都有廣泛的應(yīng)用。 1. 工作原理 DS18B20 DS18B20
    的頭像 發(fā)表于 09-03 16:44 ?910次閱讀

    STC32和STC8H驅(qū)動(dòng)DS18B20測(cè)溫串口發(fā)送數(shù)據(jù)

    STC32G12K128 和 STC8H8K64U 驅(qū)動(dòng) DS18B20 模塊,采集環(huán)境溫度并通過串口發(fā)送數(shù)據(jù)至電腦
    的頭像 發(fā)表于 06-27 16:27 ?699次閱讀
    STC32和STC8H驅(qū)動(dòng)<b class='flag-5'>DS18B20</b>測(cè)溫串口發(fā)送數(shù)據(jù)

    基于51單片機(jī)DS18B20溫度采集控制風(fēng)扇設(shè)計(jì)

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)DS18B20溫度采集控制風(fēng)扇設(shè)計(jì)包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發(fā)表于 06-26 10:43 ?0次下載

    基于51單片機(jī)DS18B20溫度采集1602液晶顯示報(bào)警設(shè)計(jì)

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)DS18B20溫度采集1602液晶顯示報(bào)警設(shè)計(jì)包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件
    發(fā)表于 06-25 10:16 ?0次下載

    DS18B20溫度傳感器工作原理

    DS18B20以其獨(dú)特的工作原理、卓越的技術(shù)參數(shù)和廣泛的應(yīng)用場(chǎng)景,成為了市場(chǎng)的明星產(chǎn)品。 深入了解DS18B20的工作原理 DS18B20溫度傳感
    的頭像 發(fā)表于 06-19 16:01 ?972次閱讀

    基于51單片機(jī)DS18B20溫度檢測(cè)上下限報(bào)警proteus仿真

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)DS18B20溫度檢測(cè)上下限報(bào)警proteus仿真及電路圖程序元件清單設(shè)計(jì)包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼
    發(fā)表于 06-18 10:13 ?1次下載

    基于STC8H8K64U和DS18B20溫度采集和LabVIEW上位機(jī)顯示

    ,該項(xiàng)目可以實(shí)現(xiàn) LabVIEW 上位機(jī)對(duì) MCU 發(fā)送指令,MCU 通過 DS18B20 溫度傳感器獲取環(huán)境溫度,并通過串口將數(shù)據(jù)反饋給上位機(jī),上位機(jī)實(shí)時(shí)記錄數(shù)據(jù),并將日期和各個(gè)時(shí)刻
    發(fā)表于 04-08 12:28

    DS18B20溫度傳感器的優(yōu)缺點(diǎn)

    可編程寄存DS18B20內(nèi)部具有可編程寄存,允許用戶對(duì)其進(jìn)行配置和控制,以滿足不同的應(yīng)用需求。
    發(fā)表于 04-04 11:39 ?4030次閱讀

    基于51單片機(jī)的多點(diǎn)溫度檢測(cè)網(wǎng)絡(luò),DS18B20傳感器,代碼,仿真,原理圖等資料

    他們的溫度。 單總線本身也可以向所掛接的多個(gè)DS18B20供電,而無需額外電源。4組溫度傳感器的連接網(wǎng)絡(luò)如下。 Proteus仿真電路 **原理圖 ** 仿真結(jié)果分析 把在K
    發(fā)表于 03-24 22:08

    樹莓派Pico上使用DS18B20溫度傳感器

    DS18B20 溫度傳感采用單總線的接口方式,與微處理連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理DS18
    的頭像 發(fā)表于 11-21 14:21 ?1273次閱讀
    樹莓派Pico上使用<b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>