Est-ce possible de programmer un "array"?

Bonjour à toutes et tous!

J'ai 11 boutons SPST qui changent l'état de 11 relais (ON/OFF).

Actuellement je suis capable d'interagir avec tout ca en utilisant des "IF" qui comparent l'état du bouton 1, 2, 3, ..., 11. Bien que cela fonctionne correctement, je n'aime pas cette façon de faire car le code est très long pour des actions répétitives.

Voici ce que j'ai comme code :

void loop() {
  int i;
  for(i = 0; 1 < 11; i++)
  {
    buttonState=digitalRead(Selecteur[i]);
    if(i==0){
      if(buttonState==HIGH){ digitalWrite(relayPin[0],buttonState); }
      if(buttonState==LOW){ digitalWrite(relayPin[0],buttonState); }
    }
    if(i==1){
      if(buttonState==HIGH){ digitalWrite(relayPin[1],buttonState); }
      if(buttonState==LOW){ digitalWrite(relayPin[1],buttonState); }
    }
    if(i==2){
      if(buttonState==HIGH){ digitalWrite(relayPin[2],buttonState); }
      if(buttonState==LOW){ digitalWrite(relayPin[2],buttonState); }
    }
    if(i==3){
      if(buttonState==HIGH){ digitalWrite(relayPin[3],buttonState); }
      if(buttonState==LOW){ digitalWrite(relayPin[3],buttonState); }
    }

... ... ... je n'ai pas tout mis car... répétitif...

Est-il possible de programmer les 11 entrées et 11 sorties via un array? Si oui, comment faire?

Merci

Tu as déjà des arrays ( Selecteur[], relayPin[] )
Tu te compliques horriblement la vie pour rien !

for ( i = 0; i < 11; i++ )
{
  buttonState = digitalRead ( Selecteur[i] );
  digitalWrite ( relayPin[i], buttonState );
}

et c'est tout !

Mais attention aux rebonds des boutons !

ha... d'accord... en effet c'était trop simple.

Alors voici une autre question : L'ordre dans laquelle j'attribut mes entrées/sorties peuvent-elles être manipulées?

Exemple, si je change les position des nombres indiqués dans ce code, est ce que je pourrai faire mes boucles "for" par incrément de 1 même si les adresses des I/O ne se suivent pas?

const int Selecteur[11] = {22,23,24,25,26,27,28,29,30,31,32};

// VS

const int Selecteur[11] = {24,30,23,32,25,26,27,28,29,31,22};

dans la deuxieme ligne de code :
i == 1 --> 24
i == 2 --> 30
etc...

Merci!

Vous allez chercher les infos dans le tableau à un certain indice, ce qui compte c’est que pour un indice donné vous ayez une paire cohérente de sélecteur et relai associé. Que les pins se suivent ou pas on s’en fiche.