Probleme de condition qui n'est pas pris en compte
Fermé
toflfou
Messages postés1317Date d'inscriptionmardi 18 mars 2008StatutMembreDernière intervention22 janvier 2021
-
Modifié par toflfou le 15/02/2017 à 17:50
Bonjour , alors de je vous expliques:
Depuis quelques jours je fais un projet de radiateur contrôler avec un arduino + xbee Hc06 , le capteur DHT11 .
Le but est de faire un "mode automatique (relay1)sur pin 12" avec le dht11 sur pin 8 et relais sur pin 13 ..
j'ai déjà fais l'application android et elle fonctionne parfaitement j'y ai aussi mis la reconnaissance vocal :) ..Bref le problème que je rencontre est que je n'arrive pas a coder le faite que si le relay1 est HIgh alors le dht11 fais son boulot (enfin disons que le programme ne le prend pas en compte , le relais2 pin 13 ne s'active pas quand le Relay1 est HIGH et que t<24)j'ai l’impression que j'ai trop de if .. enfin bref .. ..Si quelqu'un peut m'apporter son aide ce serais formidable.
Bonne journée a tous
Noter que je suis largement débutant en la matière mais passionnés,,
#include "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT11 const int Relay1 = 12; //led const int Relay2 = 13; //radiaterur const int Relay3 = 7; //PIN 5 FOR RELAY #3 const int Relay4 = 6; //PIN 4 FOR RELAY #4 byte serialA; DHT dht(DHTPIN, DHTTYPE);
void setup(){ Serial.begin(9600); dht.begin(); pinMode(Relay1,OUTPUT); //SETTING THE OUTPUT FOR RELAY #1 pinMode(Relay2,OUTPUT); //SETTING THE OUTPUT FOR RELAY #2 pinMode(Relay3,OUTPUT); //SETTING THE OUTPUT FOR RELAY #3 pinMode(Relay4,OUTPUT); //SETTING THE OUTPUT FOR RELAY #4 // digitalWrite (Relay1 ,HIGH) ; }
void loop() { float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = false) float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; }
// Compute heat index in Fahrenheit (the default) float hif = dht.computeHeatIndex(f, h); // Compute heat index in Celsius (isFahreheit = true) float hic = dht.computeHeatIndex(t, h, false);
if (Serial.available()>0) {serialA =Serial.read(); Serial.println(serialA);} switch(serialA){ //case 49: //digitalWrite(Relay1, !digitalRead(Relay1)); // break; //if recieving a 49(ascii for 1) turn on Relay #1
case 50: digitalWrite(Relay2, !digitalRead(Relay2));
delay(100); break; //if recieving a 50(ascii for 2) turn on Relay #2
case 51: digitalWrite(Relay3, !digitalRead(Relay3)); delay(100); break; //if recieving a 51(ascii for 3) turn on Relay #3
case 52: digitalWrite(Relay1,HIGH); Serial.print("OKKKKKKKKKKKHIGH");
break; //if recieving a 52(ascii for 4) turn on Relay #4
case 53: digitalWrite(Relay1, HIGH); digitalWrite(Relay2, HIGH); digitalWrite(Relay3, HIGH); digitalWrite(Relay4, HIGH); break; //if recieving a 53(ascii for 5) turn on ALL Relays
case 54: digitalWrite(Relay1, LOW); Serial.print ("OKKKLOW"); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); digitalWrite(Relay4, LOW); break; //if recieving a 54(ascii for 6) turn OFF ALL Relays
} if
((Relay2==HIGH)&&(t>26))// Si la temperature est superieur a 23 alors il eteint le relay 2 { digitalWrite(Relay2,LOW); delay(20500); } if ((Relay1==LOW)&&(t<24))//si la temperature est inferieur a 19 alors il s'allume { digitalWrite(Relay2,HIGH); delay(2500); }}
Cordialement votre Comme disait M. GABIN :<< il y a une chose que je sais , c est que l'on ne sait jamais ! >>
>><gras>Pensez juste a cocher vos problème résolus quand ils le sont (en haut a droite
A voir également:
Probleme de condition qui n'est pas pris en compte