ç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;
}