查看: 457|回复: 0

[未解决] arduino温湿度串口监视器显示问题

[复制链接]

该用户从未签到

发表于 2019-4-23 00:34 来自手机 | 显示全部楼层 |阅读模式
本人刚学arduino,遇到一些技术问题,希望大佬们帮我看一下程序,具体就是温湿度开始一直为零,后面好久才出示数,而且用手摸dht11传感器反应也不灵敏,解决了问题一定重谢
程序如下
#include <Wire.h>
#include "dht.h"
#include <Servo.h> //引入lib
Servo myservo;  // 创建一个伺服电机对象
dht DHT;
#define DHT11_PIN 8
//#define DHT21_PIN 5
//#define DHT22_PIN 12
#define Buzzer 11
#define LED 13
#define ADDRESS_BH1750FVI 0x23    //ADDR="L" for this module
#define ONE_TIME_H_RESOLUTION_MODE 0x20
//One Time H-Resolution Mode:
//Resolution = 1 lux //Measurement time (max.) = 180ms
//Power down after each measurement
#define A1 2      //引脚命名
#define B1 3
#define C1 4
#define D1 5  
byte highByte = 0;
byte lowByte = 0;
unsigned int sensorOut = 0;
unsigned int illuminance = 0;  
float wendu=0,shidu=0;  
void setup()
{     
myservo.attach(9);     
myservo.write(10);      
Wire.begin();   
Serial.begin(115200);   
  pinMode(Buzzer,OUTPUT);   //蜂鸣器为IO输出     digitalWrite(Buzzer,LOW); //蜂鸣器初始为不鸣叫     BuzzerDi();   
  pinMode(LED,OUTPUT);      
digitalWrite(LED,0);
pinMode(A1,OUTPUT);   //设置引脚为输出引脚  pinMode(B1,OUTPUT);  
pinMode(C1,OUTPUT);  
pinMode(D1,OUTPUT);  
motordoz(50);   
motordof(50);   
  }
void loop()
{  
if(DHT.read11(DHT11_PIN)==0)
{     
wendu=DHT.temperature;  
   shidu=DHT.humidity;   
   }       Wire.beginTransmission(ADDRESS_BH1750FVI); //"notify" the matching device     Wire.write(ONE_TIME_H_RESOLUTION_MODE);   
//set operation mode
     Wire.endTransmission();         
   delay(5);     
Wire.requestFrom(ADDRESS_BH1750FVI, 2); //ask Arduino to read back 2 bytes from the sensor     
highByte = Wire.read();  // get the high byte     
lowByte = Wire.read(); // get the low byte      
    sensorOut = (highByte<<8)|lowByte;
   illuminance = sensorOut/1.2;   
Serial.print(illuminance);   
Serial.print(" lux");     
Serial.print(wendu);   
  Serial.print(",\t");
     Serial.println(shidu);      
  if(wendu>45)motordoz(50);   
  else if(wendu<35)motordof(50);  
   else  
  {     
  digitalWrite(A1,0);    //A1引脚高电平        digitalWrite(B1,LOW);   
   digitalWrite(C1,LOW);   
    digitalWrite(D1,LOW);      
         }
  if(shidu>70)myservo.write(170);    if(shidu<30)myservo.write(10);   
if(wendu>45)BuzzerDi();
   if(illuminance>2000)
    digitalWrite(LED,1);   
  else   
digitalWrite(LED,0);     
delay(5);
}
void BuzzerDi()
{  
digitalWrite(Buzzer,HIGH);     //蜂鸣器响  delay(200);                     //延时20ms  digitalWrite(Buzzer,LOW);       //蜂鸣器关闭  
delay(200);
}
void motordoz(int s)
{  
Phase_A();      //设置A相位
delay(s);      //改变延时可改变旋转速度
  Phase_B();      //设置B相位
delay(s);  
Phase_C();      //设置C相位  
delay(s);  
Phase_D();      //设置D相位
delay(s);
}
void motordof(int s)
{
Phase_D();      //设置A相位  
delay(s);      //改变延时可改变旋转速度  
Phase_C();      //设置B相位  
delay(s);
  Phase_B();      //设置C相位
  delay(s);
Phase_A();      //设置D相位  
delay(s);
}
void Phase_A()
{  
digitalWrite(A1,HIGH);    //A1引脚高电平   digitalWrite(B1,LOW);  
digitalWrite(C1,LOW);  
digitalWrite(D1,LOW);
}
void Phase_B()
{  digitalWrite(A1,LOW);   
digitalWrite(B1,HIGH);    //B1引脚高电平   digitalWrite(C1,LOW);  
digitalWrite(D1,LOW);
}
void Phase_C()
{  digitalWrite(A1,LOW);
  digitalWrite(B1,LOW);
  digitalWrite(C1,HIGH);    //C1引脚高电平   digitalWrite(D1,LOW);
}
void Phase_D()
{  digitalWrite(A1,LOW);   
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
  digitalWrite(D1,HIGH);    //D1引脚高电平
}
cs_compressIMG_20190417_204325.jpg
cs_compressIMG_20190417_213135.jpg
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

【Arduino】108种传感器模块系列实验(55)---DHT11温湿度传感器
【Arduino】108种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
【Arduino】168种传感器系列实验(149)--AS608光学指纹识别模块
【Arduino】168种传感器系
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
黑乌鸦的Arduino兵器库-----DFPlayer MiNi mp3音乐模块
黑乌鸦的Arduino兵器库---
嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表