bonjour Michel
tu déclares un tableau dans lequel tu as 6 lignes qui contiennent les adresses de tes 6 sondes.
si tu veux rajouter ou enlever une sonde, tu devras modifier dans tout le programme les indices des tableaux. sinon, ce serait la cata car supposons que tu aies enlevé une sonde sans changer le nombre de sondes, ton programme ira lire une adresse de sonde qui n’existe pas.
donc pour te faciliter les choses, jml a mis une ligne qui calcule le nombre de sondes.
tu pourras ajouter ou enlever une sonde, ou 2 ou x. le prog le saura.
pour t’en convaincre, rajoute ces ligne en fin du set up
Serial.println("PRET");
Serial.print("sizeof lesCapteurs ");Serial.println(sizeof lesCapteurs);
Serial.print("sizeof * lesCapteurs ");Serial.println(sizeof * lesCapteurs);
Serial.print("nbCapteursTemperature ");Serial.println(nbCapteursTemperature);
exécutes le prg et regardes ton moniteur
puis rajoutes par exemple 2 sondes, uniquement dans le tableau comme ceci
Capteur lesCapteurs[] = {
{"EHP", {0x28, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x7E}, 0.0, true}, // 0 - Eau Haut Poêle
{"EBP", {0x28, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xDE}, 0.0, true}, // 1 - Eau Bas Poêle
{"HCP", {0x28, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xBE}, 0.0, true}, // 2 - Haut Cuve Poêle
{"BCP", {0x28, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x87}, 0.0, true}, // 3 - Bas Cuve Poêle
{"PC ", {0x28, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xE7}, 0.0, true}, // 4 - PC
{"ECS", {0x28, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x47}, 0.0, true}, // 5 - ECS
{"ECL", {0x28, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x47}, 0.0, true}, // 5 - ECS
{"ECP", {0x28, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x47}, 0.0, true}, // 5 - ECS
};
et exécutes à nouveau le prog
tu verras que c’est la place totale occupée par le tableau dans la mémoire / par la place occupée par 1 ligne
tu obtiens le nombre de lignes, donc le nombre de sondes.
partout ou dans le programme tu utilises “nbCapteursTemperature” cette constante sera à jour du nombre de sondes.
nota: tu peux aussi voir ici un des intérets de Serial.print 