Problème conditions

Bonjour j'ai un problème dans mon code au niveau des conditions je sais pour pourquoi la première condition ne marche pas.

Merci d'avance.

//A0 brancher sur une résistance de 10K et sur le port de 
//la sonde , sur la borne de sorti de la sonde sur le GND
// la résistance de 10K brancher sur 5V et sur le A0 et la sonde
// 2 relais port 2 et 3
// R1 = 2 et R2 = 3

#include <math.h>
#define PIN_NTC 0

const int R1 = 2;
const int R2 = 3;
const int R3 = 4;
const int R4 = 0;
const int V1 = 5;
const int V2 = 6;
const int BB = 7;
double Rref = 10000.0; //Résistance de référence à 25°C
double V_IN = 5.0; //Alimentation électrique
 
//Information de la thermistance
double A_1 = 3.354016E-3;
double B_1 = 2.569850E-4;
double C_1 = 2.620131E-6;
double D_1 = 6.383091E-8;
 
double SteinhartHart(double R)
{
  //Division de l'équation en 4 parties. La premiere est 
  //uniquement A1
  double equationB1 = B_1 * log(R/Rref);
  double equationC1 = C_1 * pow(log(R/Rref), 2);
  double equationD1 = D_1 * pow(log(R/Rref), 3);
  double equation = A_1 + equationB1 + equationC1 + equationD1;
  return pow(equation, -1);
 
}

void setup() {
  Serial.begin(9600);
  pinMode(R1, OUTPUT);
  pinMode(R2, OUTPUT);
  pinMode(R3, OUTPUT);
  pinMode(R4, OUTPUT);
  pinMode(V1, OUTPUT); 
  pinMode(V2, OUTPUT);
  pinMode(BB, INPUT_PULLUP);
}
 
void loop() {
  
  //Calcul de la tension sur la borne analogique
  double valeurAnalog = analogRead(PIN_NTC);
  double V =  valeurAnalog / 1024 * V_IN;
 
  //Calcul de la résistance de la thermistance
  double Rth = (Rref * V ) / (V_IN - V);
  Serial.print("Rth = ");
  Serial.print(Rth);
 
  //Calcul de la température en kelvin( Steinhart and Hart)
  double kelvin = SteinhartHart(Rth);
  double celsius = kelvin - 273.15; //Conversion en celsius
  Serial.print("Ohm  -  T = ");
  Serial.print(celsius);
  Serial.print("C\n");
  delay(1000);
boolean etatBouton = digitalRead(BB);
 if (etatBouton == HIGH)
    {
        Serial.print("Etat BP = 0\n"); 
        digitalWrite(V2, HIGH);
    } 
    else
    {
        Serial.print("Etat BP = 1\n");
        digitalWrite(V2, LOW);
    
  
        
        if (celsius > 25)
        {
         
            Serial.print("Temperature haute\n");
            digitalWrite(V1, LOW);
            digitalWrite(V2, LOW);
            digitalWrite(R1, LOW);
            digitalWrite(R2, HIGH);
            digitalWrite(R3, HIGH);
            digitalWrite(R4, HIGH);
        }
        else if (celsius < 20)
        {
            Serial.print("Temperature basse\n");
            digitalWrite(R1, HIGH);
            digitalWrite(R2, LOW);
            digitalWrite(R3, LOW);
            digitalWrite(V1, LOW);
            digitalWrite(V2, LOW);
            digitalWrite(R4, HIGH);
        }
        else
        {
            digitalWrite(R2, HIGH);
            digitalWrite(R1, HIGH);
            digitalWrite(R3, HIGH);
            digitalWrite(R4, HIGH);
            digitalWrite(V1, HIGH);
            digitalWrite(V2, HIGH);
            Serial.print("Temperature Normal\n");
        }
    
  }
}

Hello
sauf erreur, chez moi c'est ok, l'aiguillage se fait bien en fonction de la valeur de "etatbouton"

que reproche tu à ton prg?

dfgh:
Hello
sauf erreur, chez moi c'est ok, l'aiguillage se fait bien en fonction de la valeur de "etatbouton"

que reproche tu à ton prg?

Merci de m'avoir répondu.

J'ai corriger mon problème.

Voici mon code final que j'ai corriger.

//A0 brancher sur une résistance de 10K et sur le port de 
//la sonde , sur la borne de sorti de la sonde sur le GND
// la résistance de 10K brancher sur 5V et sur le A0 et la sonde
// 2 relais port 2 et 3
// R1 = 2 et R2 = 3

#include <math.h>
#define PIN_NTC 0

const int R1 = 2;
const int R2 = 3;
const int R3 = 4;
const int R4 = 5;
const int V1 = 6;
const int V2 = 7;
const int BB = 8;
double Rref = 10000.0; //Résistance de référence à 25°C
double V_IN = 5.0; //Alimentation électrique
 
//Information de la thermistance
double A_1 = 3.354016E-3;
double B_1 = 2.569850E-4;
double C_1 = 2.620131E-6;
double D_1 = 6.383091E-8;
 
double SteinhartHart(double R)
{
  //Division de l'équation en 4 parties. La premiere est 
  //uniquement A1
  double equationB1 = B_1 * log(R/Rref);
  double equationC1 = C_1 * pow(log(R/Rref), 2);
  double equationD1 = D_1 * pow(log(R/Rref), 3);
  double equation = A_1 + equationB1 + equationC1 + equationD1;
  return pow(equation, -1);
 
}

void setup() {
  Serial.begin(9600);
  pinMode(R1, OUTPUT);
  pinMode(R2, OUTPUT);
  pinMode(R3, OUTPUT);
  pinMode(R4, OUTPUT);
  pinMode(V1, OUTPUT); 
  pinMode(V2, OUTPUT);
  pinMode(BB, INPUT_PULLUP);
}
 
void loop() {
  
  //Calcul de la tension sur la borne analogique
  double valeurAnalog = analogRead(PIN_NTC);
  double V =  valeurAnalog / 1024 * V_IN;
 
  //Calcul de la résistance de la thermistance
  double Rth = (Rref * V ) / (V_IN - V);
  Serial.print("Rth = ");
  Serial.print(Rth);
 
  //Calcul de la température en kelvin( Steinhart and Hart)
  double kelvin = SteinhartHart(Rth);
  double celsius = kelvin - 273.15; //Conversion en celsius
  Serial.print("Ohm  -  T = ");
  Serial.print(celsius);
  Serial.print("C\n");
  delay(1000);
boolean etatBouton = digitalRead(BB);
 if (etatBouton == HIGH)
    {
        Serial.print("Etat BP = 1\n"); 
            digitalWrite(V2, LOW);
            digitalWrite(R2, HIGH);
            digitalWrite(R1, HIGH);
            digitalWrite(R3, HIGH);
            digitalWrite(R4, HIGH);
            digitalWrite(V1, HIGH);
    } 
    else
    {
        Serial.print("Etat BP = 0\n");
        if (celsius > 25)
        {
         
            Serial.print("Temperature haute\n");
            digitalWrite(V1, LOW);
            digitalWrite(V2, LOW);
            digitalWrite(R1, LOW);
            digitalWrite(R2, HIGH);
            digitalWrite(R3, HIGH);
            digitalWrite(R4, HIGH);
        }
        else if (celsius < 20)
        {
            Serial.print("Temperature basse\n");
            digitalWrite(R1, HIGH);
            digitalWrite(R2, LOW);
            digitalWrite(R3, LOW);
            digitalWrite(V1, LOW);
            digitalWrite(V2, LOW);
            digitalWrite(R4, HIGH);
        }
        else
        {
            digitalWrite(R2, HIGH);
            digitalWrite(R1, HIGH);
            digitalWrite(R3, HIGH);
            digitalWrite(R4, HIGH);
            digitalWrite(V1, HIGH);
            digitalWrite(V2, HIGH);
            Serial.print("Temperature Normal\n");
        }
    
  }
}

Bonsoir;

De quels sortes de relais il s'agit pour qu'ils puissent être pilotés par des sorties arduino?