Bonjour,je souhaiterais automatiser une pompe a l'aide d'un arduino UNO. L'arduino active un relais qui démarrera la pompe sous certaines conditions :
Etape1 : Si on donne une implusion sur un bouton poussoir (sur une des broches)
Alors on peut exécuter la suite :
Si le niveau d'eau est OK alors on démarre la pompe sinon on ne fait rien et (on reviens a l'étape 1).
Si la pompe est allumé alors on attend 5 secondes que la pression arrive dans les tuyaux
Ensuite si la pression dans les tuyaux est trop basse ou si la pression est trop élevé Alors on éteint la pompe (et on revient au début: étape 1)
Si la pression est bonne et le niveau d'eau OK (le loop va vérifier constamment)on laisse allumé la pompe pendant 2h et a la fin de la durée des 2heures on éteint la pompe et on revient a l'étape 1
Voici le début de mon code :
// CODE //
const int led_verte = 2;//Led verte sur pin 2
const int led_rouge = 5;//Led rouge sur pin 1
int in1 = 4;//relay to arduino pin 4
void setup() {
pinMode(in1, OUTPUT);//sortie relais broche7
pinMode(led_verte, OUTPUT);//broche2 étant une sortie (led verte)
pinMode(led_rouge, OUTPUT);//broche5 étant une sortie (led rouge)
digitalWrite(in1, HIGH);
Serial.begin(9600);
}
void loop(){
int sensorVal=analogRead(A1);
Serial.print("Sensor Value: ");
Serial.print(sensorVal);
float voltage = (sensorVal*5.0)/1024.0;
Serial.print("Milivolts: ");
Serial.print(voltage);
float pressure_pascal = (3.0*((float)voltage-0.47))*1000000.0;
float pressure_bar = pressure_pascal/10e5;
Serial.print("Pressure = ");
Serial.print(pressure_bar);
Serial.println(" bars");
Serial.print("Pressure = ");
if (pressure_bar<0.05)
{
//ce code n'est exécuté que si la condition est vérifiée
Serial.println("Pression trop basse");
digitalWrite(in1, LOW);
digitalWrite(led_verte, LOW);// led verte d'un état Bas
digitalWrite(led_rouge, HIGH);// led rouge d'un état Haut
}
if (pressure_bar>0.05)
{
//ce code n'est exécuté que si la condition est vérifiée
Serial.println("Pression Bonne");
digitalWrite(in1, HIGH);
digitalWrite(led_verte, HIGH);// led verte d'un état Haut
digitalWrite(led_rouge, LOW);// led rouge d'un état Bas
}
delay(3000);
}
// END OF CODE //
Actuellement le bout de code détecte juste si la pression est trop basse et coupe le relais (in1) Si la pression est bonne il laisse allumé le relais.
Il me semble qui faut faire un boucle avec while.
Pouriez vous me guider ?
Merci