arduino dht11程序

时间:2018-05-16 17:27:37
【文件属性】:

文件名称:arduino dht11程序

文件大小:2KB

文件格式:INO

更新时间:2018-05-16 17:27:37

arduino dht11程序

arduino dht11程序 int temp;//温度 int humi;//湿度 int tol;//校对码 int j; unsigned int loopCnt; int chr[40] = {0};//创建数字数组,用来存放40个bit unsigned long time; #define pin 2 void setup() { Serial.begin(9600); } void loop() { bgn: delay(2000); //设置2号接口模式为:输出 //输出低电平20ms(>18ms) //输出高电平40μs pinMode(pin,OUTPUT); digitalWrite(pin,LOW); delay(20); digitalWrite(pin,HIGH); delayMicroseconds(40); digitalWrite(pin,LOW); //设置2号接口模式:输入 pinMode(pin,INPUT); //高电平响应信号 loopCnt=10000; while(digitalRead(pin) != HIGH) { if(loopCnt-- == 0) { //如果长时间不返回高电平,输出个提示,重头开始。 Serial.println("HIGH"); goto bgn; } } //低电平响应信号 loopCnt=30000; while(digitalRead(pin) != LOW) { if(loopCnt-- == 0) { //如果长时间不返回低电平,输出个提示,重头开始。 Serial.println("LOW"); goto bgn; } } //开始读取bit1-40的数值 for(int i=0;i<40;i++) { while(digitalRead(pin) == LOW) {}//当出现高电平时,记下时间“time” time = micros(); while(digitalRead(pin) == HIGH) {} //当出现低电平,记下时间,再减去刚才储存的time //得出的值若大于50μs,则为‘1’,否则为‘0’ //并储存到数组里去 if (micros() - time >50) { chr[i]=1; }else{ chr[i]=0;


网友评论