CC2530之DHT11溫濕度測量

2021-07-12 07:56:01 字數 1803 閱讀 6996

dht11數字溫濕度感測器內部含乙個電阻式感溼元件和乙個ntc(negative temperature coefficient,負溫度係數)測溫元件,與乙個高效能8位微控制器相連線。採用單線制序列介面,通訊介面簡單,具有小體積、低功耗、響應速度快等優點。實物圖如下圖所示:

需注意的是:濕度測量量程為20-90%rh,精度+-5%rh;溫度測量量程為0~50℃,精度+-2℃(精度有點差,個人不喜歡用^-^)。

1. 介面說明:

建議連線線長度小於20公尺時採用5k的上拉電阻,大於20公尺根據實際情況選擇合適的上拉電阻。典型應用電路如下圖所示:

2. 程式編寫說明:

dht11與mcu通訊採用單匯流排資料格式,一次傳輸5位元組即40位資料,高位在先。具體資料格式如下(當前小數部分留作擴充套件,現讀出為零):

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

若資料傳送正確,則(8bit濕度整數資料+8bit濕度小數資料+8bit溫度整數資料+8bit溫度小數資料)所得結果的末8bit與8bit校驗和相等。通訊過程如下圖所示:

mcu控制相關引腳產生乙個大於18ms的負脈衝為乙個起始訊號,dht11接收到主機的開始訊號後,等待主機開始訊號結束,然後傳送80us低電平響應訊號。主機傳送開始訊號結束後,延時等待20-40us後, 讀取dht11的響應訊號,主機傳送開始訊號後,可以切換到輸入模式,或者輸出高電平均可, 匯流排由上拉電阻拉高。  

若匯流排線為低電平,說明dht11傳送響應訊號,dht11傳送響應訊號後。然後匯流排被拉高,當匯流排被拉低時,準備傳送資料。每一bit資料都以50us低電平時隙開始,高電平持續時間的長短決定了資料位是0還是1(26~28μs為資料0,70μs為資料1)。

3. 測試程式如下:

#define dht11_sda   p0_0

void delay_us(void);

void delay_10us(void);

void delay_ms(uint time);

uchar datbuf[5] = ; // 儲存5位元組的資料

/** * dht11資料讀取

* @return 讀取成功返回1

*/uchar dht11readdat()

p0dir |= 0x01; // 設定為輸出模式

dht11_sda = 1;

for (i=0; i<4; i++)

if (checkout == datbuf[4])

else

return

0; }

else

return0;}

void delay_us(void)

void delay_10us(void)

void delay_ms(uint time)

}

溫濕度感測器之DHT11

起始訊號 時序圖 時序說明 mcu先拉低資料線至少18ms,然後拉高20 40us dht11將資料線拉低80us,然後拉高80us 程式 拉低20ms onewire 0 delay20ms 拉高,在50us內如果器件如果有應答會拉低 onewire 1 count 0 while 1 onewi...

DHT11溫濕度感測器

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

DHT11溫濕度感測器

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