J'apelle le segment 1 celui qui utilise la broche 1 et ainsi de suite
Tout ce que tu dis es bon, sauf qu'arrivé au chiffre 5, tu semblait fatigué (ou tu fais comme les profs "c'est pour voir si vous suiviez"):
LOW devient Low
le segment 4 passe à HIGH
Le segment 9 n'existe pas
Un petit bémol quand même c'est le la liste peut être parcourue dans les deux sens 0 -> 5 ET 5 -> 0
Pour afficher 1, ce qui est écrit est bon si on avait avant le 0. Mais si on vient du 2, le segment 3 est éteint, il faut l'allumer, et le segment 7 était allumé, il le restera.
Une solution pour celui qui ne veut pas réfléchir, c'est de définir tous les segments.
Une solution pour l'informaticien, c'est pour ce type de cas, définir un tableau
uint8_t segment[6][7]={ {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, HIGH, LOW}, // chiffre 0
{LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH, LOW}, // chiffre 1
....
Pour afficher le chiffre N, on fait
digitalWrite(1,segment[N][1]);
digitalWrite(2,segment[N][2]);
digitalWrite(3,segment[N][3]);
.....
digitalWrite(9,segment[N][9]);
ou encore
for(i=1; i<=9; i++) digitalWrite(i,segment[N][i]);
A part cela, tout est un problème de câblage et de disponibilité.
Pour allumer un segment, en principe ce sera bien un HIGH pour le segment. Tu est parti sur le schéma: