DHT11的DATA引脚返回的数一直是255-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 923|回复: 6

[未解决] DHT11的DATA引脚返回的数一直是255

[复制链接]
发表于 2022-4-1 17:37 | 显示全部楼层 |阅读模式
int DHpin=8;
byte dat[5];
byte read_data()
{
  byte data;
  for(int i=0;i<8;i++)
  {
    if(digitalRead(DHpin)==LOW)
    {
      while(digitalRead(DHpin)==LOW);//等待50us
      delayMicroseconds(30);//判断高电平的持续时,以判定数据“0”还是"1"
      if(digitalRead(DHpin)==HIGH)
      data|=(1<<(7-i));//高位在,低位在后
      while(digitalRead(DHpin)==HIGH);//数据"1",等待下一位的接收
    }
  }
   return data;
}

void start_test()
{
  digitalWrite(DHpin,LOW);//拉低总,发开始信号
  delay(30);//延时要大于18ms,以便DHT11能检测到开始信号
  digitalWrite(DHpin,HIGH);
  delayMicroseconds(40);//等待DHT11响应

  pinMode(DHpin,INPUT);
  while(digitalRead(DHpin)==HIGH);
  delayMicroseconds(80);//DHT11发出响应,拉低总线80us
  if(digitalRead(DHpin)==LOW)
  delayMicroseconds(80);//DHT11拉高总线80us后开始发送数据

  for(int i=0;i<4;i++)          //接受温湿度数,校验位不考虑
   dat=read_data();

   pinMode(DHpin,OUTPUT);
   digitalWrite(DHpin,HIGH);//发送完一次数据后释放总线,等待主机的下一次开始信号}}
}

void setup()
{
  Serial.begin(9600);
  pinMode(DHpin,OUTPUT);
}

void loop()
{
  start_test();
  Serial.print("Current humdity=");
  Serial.print(dat[0],DEC);//显示湿度的整数位
  Serial.print(".");
  Serial.print(dat[1],DEC);//显示湿度的小数位
  Serial.println("%");
  Serial.print("Current temperature=");
  Serial.print(dat[2],DEC);//显示温度的整数位
  Serial.print(".");
  Serial.print(dat[3],DEC);//显示温度的小数位
  Serial.println("C");
  delay(700);
}




怀疑是read_data()函数有问题,但是同学运行该代码也没问题,
也怀疑是板子的问题,换了同学的一块好的DHT11传感器,但插上我的板子还是255

QQ图片20220401173622.jpg


QQ截图20220401172508.png

望大佬帮我解决问题


发表于 2022-4-1 23:40 | 显示全部楼层
本帖最后由 topdog 于 2022-4-1 23:45 编辑

dh11接线:一共三个引脚。S:signal 信号线。中间是正极。- :GND 。
线接错了吧。


dh11.JPG

发表于 2022-4-2 00:15 | 显示全部楼层
只会用DHT.h库的新人飘过,帮顶一下。
发表于 2022-4-2 14:37 | 显示全部楼层
建议用DHT11的库
发表于 2022-4-2 15:08 | 显示全部楼层
for(int i=0;i<4;i++)          //接受温湿度数,校验位不考虑
   dat=read_data();

试试第二行改成  dat[i]=read_data();
 楼主| 发表于 2022-4-2 16:22 | 显示全部楼层
换了一个别人在GitHub上提供的库,温湿度正常了,谢谢大家
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 07:07 , Processed in 0.081948 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表