Gestion volet roulant filaire

ça s'appelle un tableau et des boucles sans doute (plus une structure pour regrouper le tout)

faudrait aussi donner un nom au type énuméré plutôt que d'en créer 10

enum : byte {REPOS, MONTE, DESCEND} etatVolet1;
enum : byte {REPOS, MONTE, DESCEND} etatVolet2;
enum : byte {REPOS, MONTE, DESCEND} etatVolet3;
enum : byte {REPOS, MONTE, DESCEND} etatVolet4;
enum : byte {REPOS, MONTE, DESCEND} etatVolet5;
enum : byte {REPOS, MONTE, DESCEND} etatVolet6;
enum : byte {REPOS, MONTE, DESCEND} etatVolet7;
enum : byte {REPOS, MONTE, DESCEND} etatVolet8;
enum : byte {REPOS, MONTE, DESCEND} etatVolet9;
enum : byte {REPOS, MONTE, DESCEND} etatVolet10;

devient

enum t_etat: byte {REPOS, MONTE, DESCEND} ;
const byte nombreDeVolets = 10;
t_etat etatVolets[nombreDeVolets];

avec une structure pour tout regrouper ça pourrait avoir cette tête:

#include <simpleBouton.h> // http://forum.arduino.cc/index.php?topic=375232.0

enum t_etat : byte {REPOS, MONTE, DESCEND} ;

struct t_volet {
  t_etat etatVolet;
  const byte pinRelaisMonter;
  const byte pinRelaisDescendre;
  simpleBouton boutonMonter;
  simpleBouton boutonDescendre;
  unsigned long chronoVolet;
};


t_volet volets[] {
  {REPOS, 2, 3, 6, 7, 0},   // Volet #1
  {REPOS, 4, 5, 8, 9, 0},   // Volet #2
  // ...
};

const byte nombreDeVolets = sizeof volets / sizeof volets[0];

void setup() {
  for (byte v = 0; v < nombreDeVolets; v++) {
    pinMode(volets[v].pinRelaisMonter,    OUTPUT);
    pinMode(volets[v].pinRelaisDescendre, OUTPUT);
  }
}

void loop() {}

il faut bien sûr adapter le reste du code pour que les fonctions travaillent sur un volet particulier, par exemple en passant un indice à la fonction

void reposVolet(const byte indiceVolet) { // éventuellement tester que indiceVolet est < nombreDeVolets
  digitalWrite(volets[indiceVolet].pinRelaisMonter, LOW);    // on éteint le relai de montée
  digitalWrite(volets[indiceVolet].pinRelaisDescendre, LOW); // on éteint le relai de descente
  volets[indiceVolet].etatVolet = REPOS;
}