régulation de chauffage

@Artouste : oui et non. Il est vrai que je n'ai pas précisé que ma régulation est derrière une pompe à chaleur, ce qui veut dire qu'au démarrage de la pompe, j'ai instantanément +5 et je dois aussi géré le passage pompe à chaleur-> chaudière fuel(haute température).
De toute façon ce temps est un détail.

je complète mon code :

  int Correc[5];//valeur stockée des corrections

  void setup() {
    pinMode(2, INPUT);//high = inversion du demux
    digitalWrite(2, HIGH);//par defaut haut direct sur correction
    //inversion sur température extérieur par un transistor NPN (actif)
    
    attachInterrupt(0, correction, FALLING); //validation des corrections
    //on charge les valeurs de correction dans le tableau Correc
    correction();
  }

  void correction(){
    digitalWrite(2, LOW);//bascule sur le multiplex correction
    for(int i=0;i<5;i++){
      digitalWrite(15, i & 0x04);  // bit de poids fort, entrée C
      digitalWrite(16, i & 0x02);  // bit de poids moyen, entrée B
      digitalWrite(17, i & 0x01);  // bit de poids faible, entrée A
      delay(1);
      Correc[i]= analogRead(A0);
    }
    digitalWrite(2, HIGH);//on remet sur le multiplexeur température 
  }

à chaque m=0, je stocke les températures dans un tableau
les valeurs de corrections de chaque circuit sont stockées à l'initialisation ou seront actualisées par attachInterrupt(0
elles servent à adapter les températures au différents type de bâtiment, plancher chauffant, atelier, bureau ...
et une correction sur la courbe générale pour monter ou descendre tout l'ensemble
il n'y a plus qu'a additionner.

@zoroastre : j’ai regardé ton code mais ça me dépasse complètement !

Merci
Gérard