詳解DHT11溫濕度感測器的原理及驅動程式

2021-09-29 20:33:39 字數 2616 閱讀 2630

一.簡介

dht11作為一款低價、入門級的溫濕度感測器,常用於我們的微控制器設計例項中;它應用專用的數字模組採集技術和溫濕度感測技術,確保產品具有極高的可靠性與卓越的長期穩定性。感測器包括乙個電阻式感溼元件和乙個ntc測溫元件,並與乙個高效能8位微控制器相連線。

dht11為 4 針單排引腳封裝,如下圖,採用單線制序列介面,只需加適當的上拉電阻,訊號傳輸距離可達20公尺以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。

二.感測器引數

1.dht11電氣引數如下:

型號 測量範圍 測溼精度 測溫精度 解析度 封裝

2.引腳定義

3.典型電路

dht11的供電電壓為 3-5.5v,電源引腳(vdd,gnd)之間可增加乙個100nf 的電容,用以去耦濾波。data引腳併聯乙個5k以上的上拉電阻,增強訊號的抗干擾額能力。感測器上電後,要等待 1s 以越過不穩定狀態在此期間無需傳送任何指令。

三.感測器控制時序

1.資料格式

data 用於微處理器與 dht11之間的通訊和同步,採用單匯流排資料格式,一次通訊時間4ms左右,資料分小數部分和整數部分,具體格式在下面說明,當前小數部分用於以後擴充套件,現讀出為零,操作流程如下:

一次完整的資料傳輸為40bit,高位先出。

資料格式:

8bit濕度整數資料+8bit濕度小數資料+8bi溫度整數資料+8bit溫度小數資料+8bit校驗和

8位校驗和:

「8bit濕度整數資料+8bit濕度小數資料+8bi溫度整數資料+8bit溫度小數資料」相加所得結果的末8位。

2.控制時序要實現對dht11感測器的控制和資料的讀取,需先學會分析dht11的控制時序。時序主要分為三部分:1:觸發dht11採集數資料;2:讀取數字0;3:讀取數字1;。

(1)觸發dht11採集資料

匯流排空閒狀態為高電平,微控制器把匯流排拉低等待dht11響應,微控制器把匯流排拉低必須大於18ms,保證dht11能檢測到起始訊號。

當dht11接收到微控制器的開始訊號後,等待微控制器開始訊號結束,然後傳送80us低電平響應訊號。

微控制器傳送開始訊號結束後,延時等待20-40us後,切換為輸入狀態,等待dht11的80us低電平訊號結束,然後判斷dht11是否是否發出 80us 的高電平;如果是,即可開始採集資料。

(2)數字0訊號時序

當dht11輸出數字0時, 微控制器讀取到的訊號為50 us的低電平,之後為26-28 us的高電平。

(3)數字1訊號時序

當dht11輸出數字0時, 微控制器讀取到的訊號為50 us的低電平,之後為70 us的高電平。

由此可知dht11輸出數字0和數字1的區別在於高電平的時間,由此微控制器可在讀取到高電平後,延時30us後,識別此時匯流排的電平,高電平為數字1,低電平為數字0;

(4)總時序圖

使用者mcu傳送一次開始訊號後,dht11從低功耗模式轉換到高速模式,等待主機開始訊號結束後,dht11傳送響應訊號,送出40bit的資料,並觸發一次訊號採集,使用者可選擇讀取部分資料。

從模式下,dht11接收到開始訊號觸發一次溫濕度採集,如果沒有接收到主機傳送開始訊號,dht11不會主動進行溫濕度採集。當一次完整的採集資料後,dht11會轉換到低速模式。

四.控制程式

1.單位元組採集

void  com(void)

}

2.完整一次資料採集

void rh(void)}/}

3.獲取dht11資料

void gettemp1(void)

DHT11溫濕度感測器

原理圖 資料傳輸 使用序列介面 單線雙向 data 用於微處理器與 dht11之間的通訊和同步,採用單匯流排資料格式,一次 通訊時間4ms左右,資料分小數部分和整數部分,具體格式在下面說明,當前小數 部分用於以後擴充套件,現讀出為零.操作流程如下 一次完整的資料傳輸為40bit,高位先出。資料格式 ...

DHT11溫濕度感測器

dht11數字溫濕度感測器是一款含有已校準數碼訊號輸出的溫濕度復合感測器。它應用專用的數字模組採集技術和溫濕度感測技術,確保產品具有極高的可靠性與長期的穩定性。感測器包括乙個電阻式感溼元件和乙個ntc測溫元件,並與乙個8位微控制器相連線。因此該產品具有抗干擾能力強 價效比高等優點。dht11使用1 ...

DHT11溫濕度感測器

硬體連線 mcu通過一條資料線與dh11連線,mcu通過這條線發命令給dh11,dh11再通過這條線把資料傳送給mcu。溫濕度模組的核心就是 mcu發給dh11的命令格式和dh11返回的資料格式。首先mcu傳送乙個開始訊號s,這個開始訊號是乙個低脈衝,然後再拉高。等待dht11應答。然後,dh11拉...