Je travaille en tant que technicien de laboratoire. Dans le cadre de mon travail j'utilise régulièrement un distillateur. J'aimerai automatiser sa mise en route à l'aide d'une carte aruduino. Je viens vers vous car je ne parvient pas à le faire fonctionner correctement.
Voici le code
const int relais_distilateur = 7;
const int relais_electrovanne = 8;
const int capteur_haut = 13;
const int capteur_bas = 11;
int niveau_haut;
int niveau_bas;
En gros, je voudrais qu'une fois le niveau d'eau distillé de ma réserve est en dessous d'un certain seuil, le distillateur se mette en route jusqu'à atteindre un autre seuil.
Le code ci dessus ne fonctionne pas comme je le voudrais. Pouvez vous m'aider.
J'en déduis que tes capteurs sont branchés entre +VCC et entrée.
Lorsque le contact est ouvert : l'entrée est à 0
Lorsque le contact est fermé : l'entrée est à 1
Si tu n'as pas de résistances de PULL-DOWN, cela ne peut pas marcher.
Branche plutôt tes capteurs entre GND et entrée.
Et tu remplaces INPUT par INPUT_PULLUP.
Lorsque le contact est ouvert : l'entrée est à 1
Lorsque le contact est fermé : l'entrée est à 0
si on raisonne comme pour le niveau bas, dont le capteur renvoi un état LOW
le capteur du niveau haut est aussi à LOW et ta pompe le repassera à HIGH
lorsqu'elle aura pompé assez de liquide pour refaire le niveau
tu devrais donc avoir
if(niveau_bas==LOW){ //si capteur bas actionné (par manque liquide)
while(digitalRead(capteur_haut)==LOW) { //tant que capteur haut actionné(par manque liquide)
digitalWrite(relais_distilateur, HIGH);
digitalWrite(relais_electrovanne, HIGH);
}
}