一.DHT11介紹
DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,采用專用的數字模塊采集技術和溫濕度傳感技術,無需復雜的電路處理。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。
二.DHT11主要參數
(1)濕度分辨率為8bit,測量精度為±4%RH(25℃),最大的測量范圍為20~90%RH,響應時間為6-16秒;
(2)溫度分辨率為8bit,測量精度為±1℃,測量范圍為050℃,響應時間為630秒。
(3)傳感器工作電壓范圍為35V,工作電流為0.52.5mA,采樣周期為1s(即每次刷新溫濕度數據時間至少1s以上)。
三.DHT11電路圖
電路如圖,Pin1接至VDD,Pin2接至單片機引腳,Pin3懸空,Pin4接至GND。DHT11與MCU的連接線長度短于20米時,DATA引腳需外接5K上拉電阻至VDD。
四.DHT11數據格式
DHT11每讀取一次完整的數據為40bit的數據,需要根據以下格式將濕度和溫度數據解析出來。
數據格式:8bit濕度整數數據+8bit濕度小數數據 +8bi溫度整數數據+8bit溫度小數數據+8bit校驗和;
其中,高位在前,低位在后;校驗和為前4個字節的累加和的末8位。
五.DHT11操作時序
1.復位時序
總線空閑狀態為高電平,MCU引腳設置為輸出狀態,把引腳設置為低電平,延時19ms,然后延時30us,并將引腳設置為輸入狀態,等待DHT11響應;從時序看,MCU需要保持引腳低電平必須大于18ms,保證DHT11能檢測到起始信號。
根據時序進行編程代碼如下:
void dht11_reset(void)
{
// DHT11設置為輸出模式
dht11_gpio_output();
DHT11_OUT_L;
delay_us(19000);
DHT11_OUT_H;
delay_us(30);
dht11_gpio_input();
}
DHT11接收到MCU的開始信號后, 等待MCU開始信號結束,然后發送80us低電平響應信號。MCU發送開始信號結束后,延時等待20-40us后;然后MCU讀取DHT11的響應信號(即DHT11信號置低電平80us后,置為高電平80us);確認DHT11響應信號有效后,MCU進入數據讀取模式。
u16 dht11_read_data(u8 buffer[5])
{
u16 i = 0;
u8 checksum;
dht11_reset();
if (dht11_scan() == RESET)
{
//MCU讀取DHT11響應信號
while (dht11_scan() == RESET);
while (dht11_scan() == SET);
//確認DHT11發出響應信號后,進入數據讀取模式
for (i = 0; i < 5; i++)
{
buffer[i] = dht11_read_byte();
}
while (dht11_scan() == RESET);
dht11_gpio_output();
DHT11_OUT_H;
checksum = buffer[0] + buffer[1] + buffer[2] + buffer[3];
if (checksum != buffer[4])
{
// checksum error
return 1;
}
}
return 0;
}
MCU讀取完5個字節數據后,確認DHT11信號是否置為低電平,如果是,此次數據讀取完畢;單片機引腳切換到輸出模式,并將引腳電平拉高,釋放總線。
完整的數據通信時序如圖:
2.讀取數據時序
MCU進入數據讀取模式時,判斷數據位為0或者為1是通過高電平的時間來判斷。時序如圖:
數據線低電平50us后,拉至高電平,高電平時間為26us-28us內,數據位為0;高電平時間為28us-70us內,數據位為1;
數據位為‘0’
數據位為‘1’
讀數據位程序:程序通過在DHT11數據線拉至高電平時,延時40us,判斷此時數據位引腳的狀態,如果為高電平,則高電平狀態在28us-70us內,數據位為‘1’;否則為‘0’。
u16 dht11_read_bit(void)
{
while (DHT11_IN == RESET);
delay_us(40);
if (DHT11_IN == SET)
{
while (DHT11_IN == SET);
return 1;
}
else
{
return 0;
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
電阻
+關注
關注
86文章
5507瀏覽量
171920 -
單片機
+關注
關注
6035文章
44554瀏覽量
634635 -
DHT11濕度傳感器
+關注
關注
0文章
13瀏覽量
4779 -
測溫元件
+關注
關注
0文章
8瀏覽量
2672
發布評論請先 登錄
相關推薦
基于arduino的dht11溫濕度傳感器的使用
本文介紹了DHT11溫濕度傳感器電氣特性、DHT11封裝形式及接口說明與典型應用電路,其次介紹了DHT11
發表于 01-22 15:50
?4.5w次閱讀
DHT11數字溫濕度傳感器的相關資料推薦
main.clcd1602.clcd1602.hdelay.cdelay.h項目展示DHT11溫濕度相關介紹DHT11產品概述DHT11數字
發表于 11-19 07:33
dht11溫濕度傳感器中文資料(dht11工作原理特性參數及應用電路)
本文主要介紹了dht11溫濕度傳感器中文資料(dht11工作原理特性參數及應用電路)。
發表于 03-16 10:16
?39.3w次閱讀
評論