L'algorithme du programme se résume à ça :
Cas n°1 : Le thermoplongeur est alimenté (donc front montant !). Question : "Quand faut-il arrêter de chauffer ?" - Réponse : "Si U>2,2 V". (2,2 V correspond à la valeur de la tension lorsque la température max souhaitée est atteinte. Valeur à changer éventuellement pour votre cas.).
Cas n°2 : Le thermoplongeur n'est pas alimenté (donc front descendant !). Question : "Quand faut-il chauffer ?" - Réponse : "Si U<2,12 V". (2,12 V correspond à la valeur de la tension lorsque la température min souhaitée est atteinte. Valeur à changer éventuellement pour votre cas.).
Pour le premier programme, dans Void Setup(), j'alimente UNE FOIS le thermoplongeur pendant 5 secondes puisque je pars du principe que au départ l'eau est froide. On peut retirer ces instructions.
int capteur=A0;
int N=0 ;
int pinRelais=7;
float U1 ;
float U2 ;
void setup()
{
pinMode(pinRelais,OUTPUT);
Serial.begin(9600);
digitalWrite(pinRelais,HIGH) ;
delay(5000) ;
}
void loop()
{
N = analogRead(capteur);
U1=(5.0*N)/1023.0 ;
delay(1000) ;
N = analogRead(capteur);
U2=(5.0*N)/1023.0 ;
if(U1 < U2)
{
if (U2>2.2)
{
digitalWrite(pinRelais,LOW) ;
}
else
{
digitalWrite(pinRelais,HIGH) ;
}
}
else
{
if (U2<2.12)
{
digitalWrite(pinRelais,HIGH) ;
}
else
{
digitalWrite(pinRelais,LOW) ;
}
}
}
int capteur=A0;
int N=0 ;
int pinRelais=7;
float U ;
boolean EtatChauffe;
void setup()
{
pinMode(pinRelais,OUTPUT);
Serial.begin(9600);
EtatChauffe=HIGH;
}
void loop()
{
digitalWrite(pinRelais,EtatChauffe) ;
N = analogRead(capteur);
U=(5.0*N)/1023.0 ;
if(EtatChauffe==HIGH)
{
if (U>2.2) {EtatChauffe=LOW ;}
else
{
if (U<2.12) {EtatChauffe=HIGH ;}
}
}
delay(1000);
}