溫濕度感測器之DHT11

2021-09-08 03:33:10 字數 1862 閱讀 6256

起始訊號

時序圖

時序說明

mcu先拉低資料線至少18ms,然後拉高20-40us

dht11將資料線拉低80us,然後拉高80us

程式**

//拉低20ms

onewire =0;

delay20ms()

;//拉高,在50us內如果器件如果有應答會拉低

onewire =1;

count =0;

while(1

== onewire && count <5)

//超時,器件沒有應答

if( count >=5)

//應答時,先拉低80us,隨後自動拉高

count =0;

while(0

== onewire && count <10)

//超時

if( count >=10)

//拉高保持80us會拉低,準備接收資料

count =0;

while(1

== onewire && count <10)

//超時

if( count >=10)

資料讀取

時序圖

時序說明

資料輸出0訊號和1訊號都是以低電平開始高電平結束

輸出0、1訊號的低電平時間相同,而高電平的時間不同,輸出0訊號時高電平約26-28us,而當輸出1訊號時高電平約為70us

程式**

static uint8_t dht11readbyte (

void)}

return dat;

}

static uint8_t dht11readbyte (

void)}

return dat;

}bit dht11readdata ( uint8_t *humi, uint8_t *temp )

//超時,器件沒有應答

if( count >=5)

//應答時,先拉低80us,隨後自動拉高

count =0;

while(0

== onewire && count <10)

//超時

if( count >=10)

//拉高保持80us會拉低,準備接收資料

count =0;

while(1

== onewire && count <10)

//超時

if( count >=10)

//開始接收資料

for( count =

0; count <

5; count++

)// count = 0;

//// while ( 0 == onewire && count < 7 );

////

//乙個讀操作完成了,接下來校驗資料

count = dat[0]

+ dat[1]

+ dat[2]

+ dat[3]

;if( count != dat[4]

)*humi = dat[0]

;*temp = dat[2]

;return1;

}

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拉...