Bonjour à tous,
Après avoir bien réfléchit, je me suis orienté sur un système de complément d’eau pour mes bacs. La conductivité de l’eau variant de 10uS environs par 5mm de hauteur d’eau dans mes bacs, cela me semble le plus simple à faire.
Donc j’ai fait un code pour 2 bacs, manière de tester, après une semaine de test il semble que ça tourne bien et qu’il y est pas de bug dans le programme. Le probleme c’est que je viens de voir que j’avais oublier un capteur et donc une condition pour le Niv trop Haut, et je suis bloquer …
En fait j’aimerais que cette condition soit tester avant chaque bac, et cette information déterminerais si il chek le bac ou si il passe au suivant et ainsi de suite, j’aimerais aussi que dans le cas ou le niveau est trop haut, un voyant s’allume et reste allumé eme quant le programe est passer au bac 2.
Je sait pas si je suis assez clair :
voilas mon code complet pour ceux qui voudrais bien m’aider, soyer indulgent c’est mon premier code, j’apprends encore 
int capteurNivBac1 = 1; // Le capteur du bac 1 est brancher sur la sortie analogique A1
int lowPinBac1 = 8; // La Led rouge du bac 1 est brancher sur la sortie D8
int okPinBac1 = 9; // La Led verte du bac 1 est brancher sur la sortie D9
int electrovanneBac1 = 10; // L’électrovanne est brancher sur la sortie D10
int niv_val_bac1; // Variable stockant la valeur lue par le capteur de Niv en A1
int niveau_alert_bac1 = 14; // Variable du seuil d'allerte à determiné apres test (ici 14)
int niveau_alert_haut_B1 = 14;
int capteurNivBac2 = 2; // Le capteur du bac 2 est brancher sur la sortie analogique A2
int lowPinBac2 = 11; // La Led rouge du bac 2 est brancher sur la sortie D11
int okPinBac2 = 12; // La Led verte du bac 2 est brancher sur la sortie D12
int electrovanneBac2 = 13; // L’électrovanne est brancher sur la sortie D13
int niv_val_bac2; // Variable stockant la valeur lue par le capteur de Niv en A2
int niveau_alert_bac2 = 14; // Variable du seuil d’alerte à déterminé après test (ici 14)
int niveau_alert_haut_B2 = 15;
int ref = 17;
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup()
{
// put your setup code here, to run once:
pinMode(lowPinBac1, OUTPUT); // Déclaration de la pin lowPinBac1 comme sortie
pinMode(okPinBac1, OUTPUT); // Déclaration de la pin okPinBac1 comme sortie
pinMode(electrovanneBac1, OUTPUT); // Déclaration de la pin electrovanneBac1 comme sortie
pinMode(lowPinBac2, OUTPUT); // Déclaration de la pin lowPinBac1 comme sortie
pinMode(okPinBac2, OUTPUT); // Déclaration de la pin okPinBac1 comme sortie
pinMode(electrovanneBac2, OUTPUT); // Déclaration de la pin electrovanneBac1 comme sortie
Serial.begin(9600); //Ouvre le pot serie
lcd.begin(16, 2);
lcd.setCursor(1, 0);
lcd.print("Capteur de Niv");
lcd.setCursor(3, 1);
lcd.write("Test ");
}
void loop()
{
niv_val_bac1 = analogRead(capteurNivBac1); // Lecture de la valeur du niveau d'eau du bac 1
Serial.println( niv_val_bac1 ); // écrire sur le serial monitor la valeur lu par la sonde
niv_val_bac2 = analogRead(capteurNivBac2); // Lecture de la valeur du niveau d'eau du bac 1
Serial.println( niv_val_bac2 ); // écrire sur le serial monitor la valeur lu par la sonde
if (niv_val_bac1 >= niveau_alert_bac1)
{
digitalWrite(okPinBac1, HIGH); // On allume la LED Verte
digitalWrite(lowPinBac1, LOW); // On éteins la LED Rouge
digitalWrite(electrovanneBac1, LOW); //On éteins l’électrovanne du bac 1
lcd.clear();
lcd.setCursor(1, 0); //Positionnement curseur 1ere Colonne ligne 0 soit 1ere ligne
lcd.print("BAC 1: TEST"); // affichage 1ere ligne d'info (descriptif bac)
lcd.setCursor(5, 1); //Positionnement curseur 5eme Colonne ligne 1 soit 2eme ligne
lcd.print("NIV OK"); // Indication de l’état actuel du niveau d'eau
}
else
{
digitalWrite(okPinBac1, LOW); // On éteins la LED Verte
digitalWrite(lowPinBac1, HIGH); // On allume la LED Rouge
digitalWrite(electrovanneBac1, HIGH); //On allume l’électrovanne du bac 1
lcd.clear();
lcd.setCursor(1, 0); //Positionnement curseur 1ere Colonne ligne 0 soit 1ere ligne
lcd.print("BAC 1: TEST"); // affichage 1ere ligne d'info (descriptif bac)
lcd.setCursor(1, 1); //Positionnement curseur 5eme Colonne ligne 1 soit 2eme ligne
lcd.print("NIV BAS, Rempl"); // Indication de l’état actuel du niveau d'eau
}
{delay(2000);}
if (niv_val_bac2 >= niveau_alert_bac2)
{
digitalWrite(okPinBac2, HIGH); // On allume la LED Verte
digitalWrite(lowPinBac2, LOW); // On éteins la LED Rouge
digitalWrite(electrovanneBac2, LOW); //On éteins l’électrovanne du bac 1
lcd.clear();
lcd.setCursor(1, 0); //Positionnement curseur 1ere Colonne ligne 0 soit 1ere ligne
lcd.print("BAC 2: TEST"); // affichage 1ere ligne d'info (descriptif bac)
lcd.setCursor(5, 1); //Positionnement curseur 5eme Colonne ligne 1 soit 2eme ligne
lcd.print("NIV OK"); // Indication de l’état actuel du niveau d'eau
}
else
{
digitalWrite(okPinBac2, LOW); // On éteins la LED Verte
digitalWrite(lowPinBac2, HIGH); // On allume la LED Rouge
digitalWrite(electrovanneBac2, HIGH); //On allume l’électrovanne du bac 1
lcd.clear();
lcd.setCursor(1, 0); //Positionnement curseur 1ere Colonne ligne 0 soit 1ere ligne
lcd.print("BAC 2: TEST"); // affichage 1ere ligne d'info (descriptif bac)
lcd.setCursor(1, 1); //Positionnement curseur 5eme Colonne ligne 1 soit 2eme ligne
lcd.print("NIV BAS, Rempl"); // Indication de l’état actuel du niveau d'eau
}
{delay(2000);}
if (niv_val_bac1 > ref && niv_val_bac2 > ref)
{
lcd.clear();
lcd.setCursor(1, 0); // Positionnement curseur 1ere Colonne ligne 0 soit 1ere ligne
lcd.print("TOUT LES BACS"); // affichage 1ere ligne d'info (descriptif bac)
lcd.setCursor(5, 1); // Positionnement curseur 5eme Colonne ligne 1 soit 2eme ligne
lcd.print("SONT OK"); // Indication de l’état actuel du niveau d'eau
delay(3600000); // Délais avant de re tester les condition
}
}