女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數字溫濕度傳感器DHT11驅動詳解

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-06-06 09:26 ? 次閱讀

1.DHT11簡介

DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。他應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性,傳感器包括一個電容式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的溫濕校驗室中進行校正。校準系數以程序的形式存儲在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號的傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選擇。

其精度濕度±5%RH, 溫度±2℃,量程濕度5~95%RH, 溫度-20~+60℃。

pYYBAGKWyd6AapRDAARth0iuaw8813.png

2.硬件設計

溫度濕度模塊采用單總線協議,一根數據即可完成溫度和濕度數據采集,占用IO資源少,硬件接口如下:
DHT11_IO 與開發板PA0相連。

pYYBAGKWya-AUcKtAAAqr3meY5c152.png

3.通信協議簡介

(1). 溫濕度傳感器使用的是單總線接口,一次通訊時間5ms左右,具體格式如說明,當前數據傳輸位40bit,高位先出。
數據格式:接收到40bit數據=16bit濕度數據+16bit溫度數據+8bit校驗和數據。
例:接到40bit數據如下:
0100 0001 0000 0010 0010 0011 0000 0001 0110 0111
濕度數據 溫度數據 校驗和

濕度數據高8bit(整數部分)+濕度數據低8bit(小數部分)+溫度數據高8bit(整數部分)+溫度數據低8位(小數部分)=末8bit=校驗和
例如:0100 0001+0000 0010+0010 0011+0000 0001=0110 0111
濕度=65.2%RH 溫度=35.1℃

(2). 當溫度低于0℃時溫度數據的最高位置1.
例如:-10.1℃表示為1000 1010 0000 0001

3.1 時序圖

用戶主機(MCU)發送一次開始信號后,DHT11 從低功耗模式轉換到高速模式,待主機開始信號結束后,DHT11 發送響應信號,送出 40bit 的數據,并觸發一次信采集。信號發送如圖所示。

pYYBAGKWzouAD4JfAAFDOuyF7I4958.png

注:主機從 DHT11 讀取的溫濕度數據總是前一次的測量值,如兩次測間隔時間很長,請連續讀兩次以第二次獲得的值為實時溫濕度值。

3.2 數據獲取

步驟一:
DHT11上電后(DHT11 上電后要等待 1S 以越過不穩定狀態在此期間不能發送任何指令),測試環境溫濕度數據,并記錄數據,同時 DHT11 的 DATA 數據線由上拉電阻拉高一直保持高電平;此時 DHT11 的DATA 引腳處于輸入狀態,時刻檢測外部信號。
步驟二:(起始信號)
微處理器的 I/O 設置為輸出同時輸出低電平,且低電平保持時間不能小于 18ms(最大不得超過 30ms),然后微處理器的 I/O 設置為輸入狀態,由于上拉電阻,微處理器的 I/O 即 DHT11 的 DATA 數據線也隨之變高,等待DHT11 作出回答信號,發送信號如圖所示:

poYBAGKWzveAUqgdAAC6m_vxNyI009.png
void DHT11_Rst(void)	   
{                 
	DHT11_IO_OUT(); 	//配置為輸出模式
	DHT11_DQ_OUT(0); 	//總線拉低
	Delay_Ms(20);    	//拉低至少18ms
	DHT11_DQ_OUT(1); 	//總線拉高
	DelayUs(30);     	//主機拉高20~40us
}

步驟三:(回響信號)
DHT11 的 DATA 引腳檢測到外部信號有低電平時,等待外部信號低電平結束,延遲后 DHT11 的 DATA引腳處于輸出狀態,輸出 83 微秒的低電平作為應答信號,緊接著輸出 87 微秒的高電平通知外設準備接收數據,微處理器的 I/O 此時處于輸入狀態,檢測到 I/O 有低電平(DHT11 回應信號)后,等待 87 微秒的高電平后的數據接收,發送信號如圖所示:

pYYBAGKWzyuAV9aEAABeZzj_f5E738.png
u8 DHT11_Check(void) 	   
{   
	u8 retry=0;
	DHT11_IO_IN();//配置為輸入模式	
    while (!DHT11_DQ_IN&&retry<100)//DHT11會拉低83us左右
	{
		retry++;
		DelayUs(1);
	}
	if(retry>=100)return 1;	  	
    while (DHT11_DQ_IN&&retry<100)//DHT11拉低后會再次拉高87us
	{
		retry++;
		DelayUs(1);
	}	 
	if(retry>=100)return 1;
	else retry=0;  
	return 0;
}

步驟四:(讀取一位數據)
由 DHT11 的 DATA 引腳輸出 40 位數據,微處理器根據 I/O 電平的變化接收 40 位數據,位數據“0”的格式為: 54 微秒的低電平和 23-27 微秒的高電平,位數據“1”的格式為: 54 微秒的低電平加 68-74微秒的高電平。位數據“0”、“1”格式信號如圖所示:

poYBAGKWz2OAee-MAAEptODkGvU263.png
u8 DHT11_Read_Bit(void) 			 
{
 	u8 retry=0;
	while(DHT11_DQ_IN&&retry<100)//等待變為低電平
	{
		retry++;
		DelayUs(1);
	}
	retry=0;
	while(!DHT11_DQ_IN&&retry<100)//等待變高電平
	{
		retry++;
		DelayUs(1);
	}
	DelayUs(40);//等待40us
	if(DHT11_DQ_IN)return 1;
	else return 0;		   
}

結束信號
DHT11 的 DATA 引腳輸出 40 位數據后,繼續輸出低電平 54 微秒后轉為輸入狀態,由于上拉電阻隨之變為高電平。但 DHT11 內部重測環境溫濕度數據,并記錄數據,等待外部信號的到來。

3.3 溫濕度傳感器相關函數
(1) DHT11初始化函數(發送信號,檢測模塊是否正常):

u8 DHT11_Init(void)
{	 
	/*1.開時鐘*/		
	DHT11_DQ_OUT(1);//上拉	
	DHT11_Rst();  //復位DHT11
	return DHT11_Check();//等待DHT11的回應
} 

(2)讀取一字節函數

u8 DHT11_Read_Byte(void)    
{        
	u8 i,dat;
	dat=0;
	for (i=0;i<8;i++) 
	{
   		dat<<=1; 
	    dat|=DHT11_Read_Bit();
    }						    
    return dat;
}

(3)獲取一次溫度數據函數(數據格式:40bit數據=16bit濕度數據+16bit溫度數據+8bit校驗和數據)

u8 DHT11_Read_Data(u8 *temp,u8 *humi)    
{  
	u8 stat=0xff;
 	u8 buf[5]={0};
	u8 i;
	DHT11_Rst();//起始信號
	stat=DHT11_Check();
	if(stat==0)//應答信號
	{
		for(i=0;i<5;i++)//讀取40位數據
		{
			buf[i]=DHT11_Read_Byte();
		}
		if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
		{
			*humi++=buf[0];
			*humi=buf[1];
			*temp++=buf[2];
			*temp=buf[3];
		}
	}else return stat;
	return 0;	    
}

(4)溫濕度數據轉換

Delay_Ms(1);
time++;
if(time>=100)
{
time=0;
stat=DHT11_Read_Data(temperature,humidity);	//讀取溫濕度值
if(!stat)
{
printf("溫度:%d.%d℃  濕度:%d.%d\r\n",
temperature[0],temperature[1],humidity[0],temperature[1]);
	  sprintf((char *)buff,"%d.%1d",temperature[0],temperature[1]);
	  OLED_Display_str(60,0,8,16,buff);
	  sprintf((char *)buff,"%d.%1d",humidity[0],temperature[1]);
	  OLED_Display_str(60,2,8,16,buff);
	}
}
pYYBAGKW0EyAB7oOAABy-42vQ2w130.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2289

    文章

    11012

    瀏覽量

    362366
  • 單總線
    +關注

    關注

    1

    文章

    36

    瀏覽量

    12525
  • DHT11
    +關注

    關注

    19

    文章

    277

    瀏覽量

    58273
  • 數字溫濕度傳感器

    關注

    0

    文章

    31

    瀏覽量

    11308
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于arduino的dht11溫濕度傳感器的使用

    本文介紹了DHT11溫濕度傳感器電氣特性、DHT11封裝形式及接口說明與典型應用電路,其次介紹了DHT11
    發表于 01-22 15:50 ?4.5w次閱讀
    基于arduino的<b class='flag-5'>dht11</b><b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>的使用

    DHT11數字溫濕度傳感器的應用性研究

    基于DHT11溫濕度傳感器具有測量精度高、響應速度快、抗干擾能力強等優點。通過介紹DHT11數字溫濕度
    發表于 11-06 16:28

    DHT11溫濕度傳感器介紹

    DHT11溫濕度傳感器介紹,1.實物原理圖2.模塊說明2.1 DHT11產品概述DHT11數字
    發表于 07-21 09:04

    DHT11數字溫濕度傳感器的相關資料推薦

    main.clcd1602.clcd1602.hdelay.cdelay.h項目展示DHT11溫濕度相關介紹DHT11產品概述DHT11數字
    發表于 11-19 07:33

    dht11溫濕度傳感器有什么特點?怎么使用?

    dht11溫濕度傳感器特點及使用介紹前言一、dht11溫濕度傳感器外觀二、原理圖三、相關參數講解
    發表于 01-10 06:27

    DHT11數字溫濕度傳感器的數據通訊過程是怎樣的

    DHT11數字溫濕度傳感器是什么?有何優點呢?DHT11數字
    發表于 01-18 06:07

    DHT11溫濕度傳感器簡介

    DHT11溫濕度傳感器1、DHT11簡介DHT11數字溫濕度
    發表于 02-16 06:55

    DHT11數字溫濕度傳感器的相關資料推薦

    STM32采集DHT11溫濕度關于DHT11相關參數代碼篇接線和實驗結果總結關于DHT11DHT11是一款數字
    發表于 02-21 07:34

    DHT11數字溫濕度傳感器產品介紹

    DHT11數字溫濕度傳感器產品介紹 DHT11數字溫濕度
    發表于 02-26 17:19 ?256次下載

    DHT11數字溫濕度傳感器的應用性研究

    基于DHT11溫濕度傳感器具有測量精度高、響應速度快、抗干擾能力強等優點。通過介紹DHT11數字溫濕度
    發表于 07-25 17:03 ?216次下載
    <b class='flag-5'>DHT11</b><b class='flag-5'>數字</b>式<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>的應用性研究

    數字溫濕度傳感器 DHT11

    數字溫濕度傳感器 DHT11 ?相對濕度和溫度測量 ?全部校準,數字輸出 ?卓越的長期穩定性 ?
    發表于 12-02 11:06 ?4次下載

    溫濕度傳感器DHT11驅動程序

    本文開始介紹了驅動程序的定義與驅動程序的作用,其次介紹了DHT11溫濕度傳感器特性、引腳說明與封裝詳情,最后介紹了
    發表于 01-22 16:52 ?5.4w次閱讀
    <b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DHT11</b><b class='flag-5'>驅動</b>程序

    溫濕度傳感器DHT11的STM32驅動實現

    溫濕度傳感器DHT11的STM32驅動實現
    發表于 11-25 20:36 ?76次下載
    <b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DHT11</b>的STM32<b class='flag-5'>驅動</b>實現

    數字溫濕度傳感器DHT11產品手冊

    數字溫濕度傳感器DHT11產品手冊
    發表于 02-14 11:17 ?81次下載

    使用ESP8266驅動DHT11溫濕度傳感器

    DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度綜合
    的頭像 發表于 05-19 14:20 ?8207次閱讀
    使用ESP8266<b class='flag-5'>驅動</b><b class='flag-5'>DHT11</b><b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>