极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9337|回复: 2

检测温度和湿度,单加温度正常,加上湿度温度忽高忽低,但是湿度带动马达后,温度正常

[复制链接]
发表于 2014-6-1 22:37:28 | 显示全部楼层 |阅读模式
检测温度和湿度,单加温度正常,加上湿度温度忽高忽低,但是湿度带动马达后,温度正常,,是什么原因。。。。太纠结了。。。。




int tempPin = 2;//wendu
long valtemp = 0;
float temperature = 0;

int wetPin = 3;//shidu  
long  valwet = 0;
float wet  = 0;  
void setup() {   
  

   
pinMode(5,OUTPUT);//wendu
pinMode(6,OUTPUT);//shidu

pinMode(3,OUTPUT);//fan
pinMode(2,OUTPUT);//curtain

  Serial.begin(9600);

}




void loop() {
  
  tempTest();
  wetTest();


  delay(400);
}




void wetTest(){
   valwet=analogRead(wetPin);
   wet = (valwet*0.0048828125*100);  
   Serial.print("shidu=  ");
   Serial.println(wet);
  
   if ( wet  > 23 && f == 0){
digitalWrite( 6 , LOW );//led
digitalWrite( 2 , HIGH );//curtain
}else if( wet  < 23 && f == 0){
digitalWrite( 6, HIGH );//LED
digitalWrite( 2 , LOW );//curtain
}
}


void tempTest(){
   valtemp=analogRead(tempPin);
  temperature = (valtemp*0.0048828125*100);  
   Serial.print("Tep=  ");
   Serial.print(temperature);
   Serial.println(" C");

   if ( temperature  > 40 && f == 0){
digitalWrite( 5 , HIGH );//LED
digitalWrite( 3 , HIGH );//open fan
   }else if(temperature<40 && f == 0){
digitalWrite( 5 , LOW );
digitalWrite( 3 , LOW );//close fan\
if( temperature<30)digitalWrite( 9 , HIGH );//open heater
if(temperature>30)digitalWrite( 9 , LOW );//close
}
  
}

回复

使用道具 举报

发表于 2014-6-2 11:56:56 | 显示全部楼层
除了以下要汪意外,整體還可以,所述的 "加上湿度温度忽高忽低" 問題,很大可能是硬件那邊的問題,應小心檢查。

1)  if ( ....  && f == 0){    //當中的 f 是甚麼?
2) 以下的用途無效
if( temperature<30)digitalWrite( 9 , HIGH );//open heater
if(temperature>30)digitalWrite( 9 , LOW );//close

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-2 15:13:57 | 显示全部楼层
eddiewwm 发表于 2014-6-2 11:56
除了以下要汪意外,整體還可以,所述的 "加上湿度温度忽高忽低" 問題,很大可能是硬件那邊的問題,應小心檢 ...

代码改过了,,但还是互相影响,,谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 20:07 , Processed in 0.035423 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表