找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 296|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

求助DHT11相關(guān)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
最近在用DHT11測量溫濕度的時(shí)候遇到了一些問題,查詢相關(guān)資料需要在DHT11的數(shù)據(jù)口加上拉電阻,但是在仿真和實(shí)物中加上拉電阻DHT11讀數(shù)不正常,不加上拉電阻反而能使用,看仿真好像是數(shù)據(jù)口不能正常下拉。
相關(guān)代碼如下:
//DHT11相關(guān)函數(shù)
/*******************************************************************************
* 函 數(shù) 名   : rev_byte
* 函數(shù)功能  : DHT11接受字節(jié)
* 輸    入    : 無
* 輸    出    : rev_data
*******************************************************************************/
unsigned char  rev_byte( )        
{            
           unsigned char i,temp,rev_data=0;                  
       for(i=0;i<8;i++)           
            {                 
                    while(dat==0); //等待50us的低電平
                        Delay_10us();  //延時(shí)30us
                  Delay_10us();
                        Delay_10us();
                        temp=0;
                          if(dat==1)        //判斷數(shù)據(jù)為0或1
                    temp=1;
                    while(dat==1); //等待1的高電平結(jié)束                    
                  rev_data<<=1;
                     rev_data|=temp;        
             }
                 return rev_data;           
        }

/*******************************************************************************
* 函 數(shù) 名       : RH
* 函數(shù)功能                   : DHT11讀取
* 輸    入       : *rh、*tem
* 輸    出             : 無
*******************************************************************************/        
void RH(unsigned char *rh,unsigned char *tem)
{
        unsigned char rh_h,rh_l,tem_h,tem_l,rh_ht,rh_lt,tem_ht,tem_lt,check;
        dat=0; //拉低18ms
        dht_Delay(180);                                                           
        dat=1; //總線由上拉電阻拉高延時(shí)20us以上         
        Delay_10us();
        Delay_10us();
        Delay_10us();
        Delay_10us();
        dat=1;           //dat引腳設(shè)為讀狀態(tài)
        if(dat==0)         //判斷是否有低電平響應(yīng)信號(hào)                  
        {
           while(dat==0); //等待 80us 的低電平響應(yīng)信號(hào)         
           while(dat==1);          //等待80us的高電平響應(yīng)        
           rh_ht=rev_byte();                 //接收濕度高8位        
           rh_lt=rev_byte();                 //濕度低8位
           tem_ht=rev_byte();          //溫度高8位
           tem_lt=rev_byte();         //溫度低8位
           check=rev_byte();
           dat=1;         
           if(rh_ht+rh_lt+tem_ht+tem_lt==check) //數(shù)據(jù)校驗(yàn)
           {        
             rh_h=rh_ht;
                 rh_l=rh_lt;
                 tem_h=tem_ht;
                 tem_l=tem_lt;
                 *rh=rh_h;
                 *tem=tem_h;                     
           }
        }

}

f1340a3b-863a-4124-8f5c-0b4f75221f23.png (42.26 KB, 下載次數(shù): 0)

不加上拉電阻

不加上拉電阻

e4084451-800e-4b8a-bb7a-8384e1445163.png (44.52 KB, 下載次數(shù): 0)

加上上拉電阻

加上上拉電阻

8a82c04a-b37a-4641-ae9e-a0d9d164aa2e.png (10.64 KB, 下載次數(shù): 0)

數(shù)據(jù)口不能正常下拉

數(shù)據(jù)口不能正常下拉
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:469589 發(fā)表于 2025-5-5 09:24 | 只看該作者
說明在仿真中:你的“端口”沒有驅(qū)動(dòng)能力,上拉換成10K以上試試。
回復(fù)

使用道具 舉報(bào)

板凳
ID:1145127 發(fā)表于 2025-5-5 14:27 | 只看該作者
GlenXu 發(fā)表于 2025-5-5 09:24
說明在仿真中:你的“端口”沒有驅(qū)動(dòng)能力,上拉換成10K以上試試。

試了下12k,可以驅(qū)動(dòng)了,請(qǐng)問這是為什么呢
回復(fù)

使用道具 舉報(bào)

地板
ID:469589 發(fā)表于 2025-5-6 12:59 | 只看該作者
是因?yàn)橐话泸?qū)動(dòng)能力都沒你想象的大!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表