Bonjour, je dois faire un code arduino pour automatiser une serre, sur la lumière, la température et l’humidité. Je joins le code au message mais le principe est simple.
Le problème est au niveau de la pompe (la pin 12). J’aimerai qu’elle marche pendant 3 secondes si l’humidité de la terre est trop faible. (Humidity>= 300). J’ai utilisé la fonction millis mais la pompe marche 10 secondes, qu’importe la valeur que j’entre. De plus elle ne se relance pas forcément si l’humidite reste trop faible... j’ai besoin d’aide !!
LE CODE :
// the setup routine runs once when you press reset:
int t;
bool pompe=false;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(3, OUTPUT);
pinMode(12,OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pins:
int lightLvl = analogRead(A0);
float temp = ((analogRead(A1)*5.0/1024.0)-0.5)*100;
int humidity = analogRead(A2);
if (lightLvl >= 500){
digitalWrite(8,HIGH);
}else{
digitalWrite(8,LOW);
}
if (temp >= 100){
digitalWrite(9,HIGH);
}else{
digitalWrite(9,LOW);
}
if (temp <= 15){
digitalWrite(3,HIGH);
}else{
digitalWrite(3,LOW);
}
if (humidity >= 300 && pompe==false){
digitalWrite(12,HIGH);
pompe=true;
t=millis();
}
if (pompe==true && millis()-t>1000){
digitalWrite(12,LOW);
pompe=false;
}
// print out the value you read:
Serial.println(humidity);
delay(10000); // delay in between reads for stability
}