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

用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 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题
  • ¥20 基于matlab的航迹融合 航迹关联 航迹插补