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