无心插柳_ 2020-01-11 16:30 采纳率: 100%
浏览 802
已采纳

用arduino实现温湿度传感器dht11,求大佬帮我看看代码,怎样写才能实现读取传感器信号?

int DHTpin=2;
byte dat[5];
//------------------------------------------------------
byte read_data()
{ byte data;
  for(int i=0;i<8;i++)
  {
    if(digitalRead(DHTpin)==LOW)
    {
      while(digitalRead(DHTpin)==LOW) ;
      delayMicroseconds(30);
      if(digitalRead(DHTpin)==HIGH)
      data|=(1<<(7-1));
      while(digitalRead(DHTpin)==HIGH) ;
      }
    }
    return data;
  }
    //------------------------------------------------------
void start_test(){
  digitalWrite(DHTpin,LOW);
  delay(30);
  digitalWrite(DHTpin,HIGH);
  delayMicroseconds(40);
  pinMode(DHTpin,INPUT);
  while(digitalRead(DHTpin)==LOW) ;
  delayMicroseconds(80);
  for(int i=0;i<5;i++)
  dat[i]=read_data();
  pinMode(DHTpin,OUTPUT);
  digitalWrite(DHTpin,HIGH);
}
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(DHTpin,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  start_test();
  for(int i=0;i<5;i++)
  {
    Serial.print("dat[");
    Serial.print(i);
    Serial.print("]=");
    Serial.print(dat[i]);
    Serial.print(' ');
  }
  delay(700);
}

为什么串口监视器上一直显示0图片说明
read_data()里的代码该怎么写?

  • 写回答

2条回答 默认 最新

  • 枕头下腐烂的梦想 2020-01-13 16:38
    关注

    Serial.print(dat[i],DEC);
    你读到的数据还是byte类型,用DEC转成十进制就好了。我也是刚用这个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器