ghbgc 2020-01-11 08:30 采纳率: 100%
浏览 806
已采纳

用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 08:38
    关注

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

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

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部