Go Down

Topic: doppia azione rele  (Read 474 times) previous topic - next topic

-d0b-

Ho un problema con questa parte di sketch:

Code: [Select]
    if (now.hour() >= 15 ){
      if (((t1+t2+t3)/3) >= tMAX) {
        digitalWrite(relay3, HIGH);}   // accensione aspiratore
      if (((t1+t2+t3)/3) <= (tMIN+1)) {   
        digitalWrite(relay3, LOW);}   // spegnimento aspiratore
         
      if (((t1+t2+t3)/3) <= tMIN) {
        digitalWrite(relay1, HIGH);}   // accensione stufa
      if (((t1+t2+t3)/3) >= (tMAX-1)) {   
        digitalWrite(relay1, LOW);}   // spegnimento stufa   
       
      if (((h1+h2+h3)/3) >= hMAX) {
        digitalWrite(relay3, HIGH);}   // accensione aspiratore
      if (((h1+h2+h3)/3) <= (hMIN+10)) {   
        digitalWrite(relay3, LOW);}   // spegnimento aspiratore 


infatti questo codice

Code: [Select]
        if (((t1+t2+t3)/3) >= tMAX) {
        digitalWrite(relay3, HIGH);}   // accensione aspiratore
      if (((t1+t2+t3)/3) <= (tMIN+1)) {   
        digitalWrite(relay3, LOW);}   // spegnimento aspiratore


e questo

Code: [Select]
  if (((h1+h2+h3)/3) >= hMAX) {
        digitalWrite(relay3, HIGH);}   // accensione aspiratore
      if (((h1+h2+h3)/3) <= (hMIN+10)) {   
        digitalWrite(relay3, LOW);}   // spegnimento aspiratore 


si infastidiscono, nel senso che se non vi sono sia tMAX che la hMAX l'aspiratore non rimane acceso...

qualcuno sa come ovviare a questo problema?

cyberhs

#1
Apr 11, 2015, 01:12 pm Last Edit: Apr 11, 2015, 01:14 pm by cyberhs
Code: [Select]

    float Temp = (t1+t2+t3) / 3;
    float Umid = (h1+h2+h3) / 3;

    if (now.hour() >= 15 ) {
 
      if (Temp  >= tMAX) || (Umid >= hMAX)) digitalWrite(relay3, HIGH);    // accensione aspiratore
      else if (Temp <= tMIN + 1) || (h1Umid <= hMIN + 10)) digitalWrite(relay3, LOW);   // spegnimento aspiratore
          
      if (Temp <= tMIN) digitalWrite(relay1, HIGH);   // accensione stufa
      else if (Temp >= tMAX -1) digitalWrite(relay1, LOW);}   // spegnimento stufa    
   }

-d0b-

grazie cyberhs... non solo per avermi spiegato come fare... anche perche ora cercherò di capire l'utilizzo di "else", che hai aggiunto alla funzione... grazie

Go Up