dht11溫濕度傳感器工作原理詳解
DHT11功能
對溫濕度數(shù)據(jù)進行采集。
DHT11封裝尺寸圖
在進行PCB封裝設(shè)計的時候會用到。
引腳說明
1、VDD 供電 3.3~5.5V DC
2、DATA 串行數(shù)據(jù),單總線
3、NC 空腳
4、GND 接地,電源負
溫濕度采集范圍
濕度采集范圍5%~95%,在環(huán)境溫度為25℃時,濕度采集精度是±5%。溫度采集范圍是-20℃~60℃,在環(huán)境溫度為25℃時,溫度采集精度是±2℃。
DHT11供電電壓為3.3V~5.5V,測量時的供電電流為1.0mA,待機時的供電電流為0.06mA。
典型電路
傳感器的DATA口需要接4.7K的上拉電阻。上拉電阻的作用是在單片機不進行輸出以及傳感器待機時,使得DATA口為高電平,當總線閑置時, 其狀態(tài)為高電平。
數(shù)據(jù)格式
8bit 濕度整數(shù)數(shù)據(jù) + 8bit 濕度小數(shù)數(shù)據(jù) + 8bit 溫度整數(shù)數(shù)據(jù) + 8bit 溫度小數(shù)數(shù)據(jù) + 8bit 校驗位。
數(shù)據(jù)讀取步驟
步驟一: DHT11上電后(DHT11上電后要等待 1S 以越過不穩(wěn)定狀態(tài)在此期間不能發(fā)送任何指令),測試環(huán)境 溫濕度數(shù)據(jù),并記錄數(shù)據(jù),同時 DHT11的 DATA 數(shù)據(jù)線由上拉電阻拉高一直保持高電平;此時 DHT11的 DATA 引腳處于輸入狀態(tài),時刻檢測外部信號。
步驟二: 微處理器的 I/O設(shè)置為輸出同時輸出低電平,且低電平保持時間不能小于 18ms(最大不得超過 30ms), 然后微處理器的 I/O設(shè)置為輸入狀態(tài),由于上拉電阻,微處理器的 I/O即 DHT11的 DATA 數(shù)據(jù)線也隨之變 高,等待 DHT11作出回答信號,發(fā)送信號如圖所示:
步驟三: DHT11 的 DATA引腳檢測到外部信號有低電平時,等待外部信號低電平結(jié)束,延遲后 DHT11 的 DATA 引腳處于輸出狀態(tài),輸出 83微秒的低電平作為應(yīng)答信號,緊接著輸出 87 微秒的高電平通知外設(shè)準備接 收數(shù)據(jù),微處理器的 I/O 此時處于輸入狀態(tài),檢測到 I/O 有低電平(DHT11回應(yīng)信號)后,等待 87微秒 的高電平后的數(shù)據(jù)接收,發(fā)送信號如圖所示:
步驟四: 由 DHT11 的 DATA引腳輸出 40 位數(shù)據(jù),微處理器根據(jù) I/O電平的變化接收 40 位數(shù)據(jù),位數(shù)據(jù)“0” 的格式為: 54 微秒的低電平和 23-27 微秒的高電平,位數(shù)據(jù)“1”的格式為: 54 微秒的低電平加 68-74 微秒的高電平。位數(shù)據(jù)“0”、“1”格式信號如圖所示:
DHT11為 4 針單排引腳封裝,如下圖,采用單線制串行接口,只需加適當?shù)纳侠娮?,信號傳輸距離可達20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。
二.傳感器參數(shù)
1.DHT11電氣參數(shù)如下:
型號 測量范圍 測濕精度 測溫精度 分辨率 封裝
2.引腳定義
3.典型電路
DHT11的供電電壓為 3-5.5V,電源引腳(VDD,GND)之間可增加一個100nF 的電容,用以去耦濾波。DATA引腳并聯(lián)一個5K以上的上拉電阻,增強信號的抗干擾額能力。傳感器上電后,要等待 1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。
三.傳感器控制時序
1.數(shù)據(jù)格式
DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當前小數(shù)部分用于以后擴展,現(xiàn)讀出為零,操作流程如下:
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。
數(shù)據(jù)格式:
8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和
8位校驗和:
“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”相加所得結(jié)果的末8位。
2.控制時序
要實現(xiàn)對DHT11傳感器的控制和數(shù)據(jù)的讀取,需先學(xué)會分析DHT11的控制時序。時序主要分為三部分:1:觸發(fā)DHT11采集數(shù)數(shù)據(jù);2:讀取數(shù)字0;3:讀取數(shù)字1;。
(1)觸發(fā)DHT11采集數(shù)據(jù)
總線空閑狀態(tài)為高電平,單片機把總線拉低等待DHT11響應(yīng),單片機把總線拉低必須大于18ms,保證DHT11能檢測到起始信號。
當DHT11接收到單片機的開始信號后,等待單片機開始信號結(jié)束,然后發(fā)送80us低電平響應(yīng)信號。
單片機發(fā)送開始信號結(jié)束后,延時等待20-40us后,切換為輸入狀態(tài),等待DHT11的80us低電平信號結(jié)束,然后判斷DHT11是否是否發(fā)出 80us 的高電平;如果是,即可開始采集數(shù)據(jù)。
(2)數(shù)字0信號時序
當DHT11輸出數(shù)字0時, 單片機讀取到的信號為50 us的低電平,之后為26-28 us的高電平。
(3)數(shù)字1信號時序
當DHT11輸出數(shù)字0時, 單片機讀取到的信號為50 us的低電平,之后為70 us的高電平。
由此可知DHT11輸出數(shù)字0和數(shù)字1的區(qū)別在于高電平的時間,由此單片機可在讀取到高電平后,延時30us后,識別此時總線的電平,高電平為數(shù)字1,低電平為數(shù)字0;
(4)總時序圖
用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分數(shù)據(jù)。
從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進行溫濕度采集。當一次完整的采集數(shù)據(jù)后,DHT11會轉(zhuǎn)換到低速模式。