Tu peux simplifier la loop :
void loop() {
tvoltage1 = analogRead(A0);
temperature1 = ((0.390625) * tvoltage1);
tvoltage2 = analogRead(A1);
temperature2 = ((0.390625) * tvoltage2);
Serial.print("la température 1 : ");
Serial.println(temperature1);
Serial.print("la température 2 : ");
Serial.println(temperature2);
if (digitalRead(9) != LOW)
{
digitalWrite(MOTEURBR, LOW);
digitalWrite(RESISTANCE1, LOW);
digitalWrite(RESISTANCE2, LOW);
digitalWrite(MOTEUREX, LOW);
}
else if (digitalRead(1) != LOW)
{
Serial.print("boucle1");
if (temperature1 < consigne1) digitalWrite(RESISTANCE1, HIGH);
else if (temperature1 > consigne1) digitalWrite(RESISTANCE1, LOW);
if (temperature2 < consigne2) digitalWrite(RESISTANCE2, HIGH);
else if (temperature2 > consigne2) digitalWrite(RESISTANCE2, LOW);
}
else if (digitalRead(2) != LOW)
{
Serial.print("boucle2");
if (temperature1 < consigne1) digitalWrite(RESISTANCE1, HIGH);
else if (temperature1 > consigne1) digitalWrite(RESISTANCE1, LOW);
if (temperature2 < consigne2) digitalWrite(RESISTANCE2, HIGH);
else if (temperature2 > consigne2) digitalWrite(RESISTANCE2, LOW);
}
else if (digitalRead(3) != LOW)
{
Serial.print("boucle3");
if (temperature1 < consigne3) digitalWrite(RESISTANCE1, HIGH);
else if (temperature1 > consigne3) digitalWrite(RESISTANCE1, LOW);
if (temperature2 < consigne4) digitalWrite(RESISTANCE2, HIGH);
else if (temperature2 > consigne4) digitalWrite(RESISTANCE2, LOW);
}
else if (digitalRead(8) != LOW)
{
Serial.print("boucle4");
if (temperature1 < consigne3) digitalWrite(RESISTANCE1, HIGH);
else if (temperature1 > consigne3) digitalWrite(RESISTANCE1, LOW);
if (temperature2 < consigne4) digitalWrite(RESISTANCE2, HIGH);
else if (temperature2 > consigne4) digitalWrite(RESISTANCE2, LOW);
}
else
{}
delay(5000);
}
Pas besoin de parenthèses dans les tests, et si une seule instruction sur un test pas besoin d'accolades.
Je pense que c'est un problème de timing : à quoi sont reliées les broches 1, 2, 3 et 8 ? Si ce sont des boutons poussoirs, il peut y avoir des effets de rebond.
Essaye d'ajouter des delay (100); (par exemple, peut-être plus que 100) avant la fin de chaque if :
if (digitalRead(9) != LOW)
{
digitalWrite(MOTEURBR, LOW);
digitalWrite(RESISTANCE1, LOW);
digitalWrite(RESISTANCE2, LOW);
digitalWrite(MOTEUREX, LOW);
delay(100);
}