Problème ventilateur automatique

Bonjour/Bonsoir je travaille sur un projet de ventilateur automatique (qui s'allume lorsque le ventilo détecte une présence et si il fait plus de 23°)

le problème est que lorsque je test mon code sur 123d Circuits (car ceci étant un projet scolaire je n'ai pas le materiel chez moi) je mets le capteur de temperature en dessous de la temperature nécessaire le ventilateur s'allume quand meme lorsqu'il détecte une présence.

le code est le suivant merci de m'éclairer

 int FanPin = 13;                  // Pin pour le ventilateur
int PIRPin = 2;                  // Pin pour le PIR 
int TemPin = 0;                 // Pin pour le capt temperature
int pirState = LOW;            // Si aucune présence n'est detecté
int val = 0;                  // Variable pour le statut du PIR

void setup() {
  pinMode(FanPin, OUTPUT);      // déclaré comme une sortie pour le ventilo
  pinMode(PIRPin, INPUT);      // déclaré comme une entrée pour le ventilo

  Serial.begin(9600);
}

void loop(){
int ValCapt = analogRead(TemPin);
float voltage = TemPin*5.0/1024;
float temperature = (voltage = 0,5)*100;
Serial.print("temperature : " );
Serial.print(temperature);
 Serial.println(" C ");
delay(3000);

 if (temperature > 23) {
  val = digitalRead(PIRPin);             // lit la valeur de l'entrée
  if (val == HIGH) {                    // vérifie si l'entrée est HIGH 
    digitalWrite(FanPin, HIGH);        // Allumer le ventilateur
    if (pirState == LOW) {
      
      Serial.println("Presence !");
     
      pirState = HIGH;
    }
  }
  }
  else {
    digitalWrite(FanPin, LOW); // Eteindre le ventilateur
    if (pirState == HIGH){
     
      Serial.println("Plus de presence !");
      
      pirState = LOW;
    }
  }
}

Bonjour,

Ton calcul de température est complètement faux. Regardes ce que t'affiche le moniteur série.