Lire deux capteur d'humidité a intervalle différent non bloquant.

Et quand tu déplaces ces lignes

  if  (humidite == LOW) {
    digitalWrite(ledhumide, HIGH); // Allumer LED humide
    digitalWrite(ledsec, LOW); // Eteindre Led sec
  }

  if  (humidite == HIGH) {
    digitalWrite(ledsec, HIGH); // Allumer Led sec
    digitalWrite(ledhumide, LOW); // Eteindre LED humide
  }

de la loop dans la fonction togglecapthumidite :

void togglecapthumidite ()
{


  humidite = digitalRead(capthumidite); // Lecture de l etat du détecteur 1

  if  (humidite == LOW) {
    digitalWrite(ledhumide, HIGH); // Allumer LED humide
    digitalWrite(ledsec, LOW); // Eteindre Led sec
  } else { // <-- petit changement au passage...
    digitalWrite(ledsec, HIGH); // Allumer Led sec
    digitalWrite(ledhumide, LOW); // Eteindre LED humide
  }

  // remember when we toggled it
  capthumiditetimer = millis ();

  Serial.print(millis());
}  // end of togglecapthumidite

ça n'allume pas les LEDs ?
Je ne vois pas pourquoi...

Au besoin, ajoute un
Serial.println(humidite);après le digitalRead pour voir ce que ça vaut.