accendere diversi gruppi di rele

ciao

per un mio progetto ho la necessita di accendere un gruppo di rele in base alla mia scelta da fare tramite commutatore rotativo multiplo oppure altro sistema da definire.
Il numero massimo di rele da accendere è 5.
Es.
Scelta 1
accendi rele 1, 4, 5

Scelta 2
accendi rele 3, 4

ecc.

Io ho Arduino uno ed una scheda da 16rele.

Potete darmi qualche esempio dello sketch per favore.

Grazie

Le informazioni per un codice funzionante sono un po poche. Tanto per cominciare quel

in base alla mia scelta da fare tramite commutatore rotativo multiplo oppure altro sistema da definire.

per avere un codice funzionante serve definirlo (almeno temporaneamente). Inoltre mi chiedo una cosa: hai una scheda da 16 relais, vuoi poterli accendere tutti, ciascuno singolarmente? Oppure di quei 16 ne bastano 5? Nel primo caso sappi che ti rimangono 2 pin liberi (teoricamente 4, ma 0 e 1 sono per la seriale). Una volta chiarite queste cose il codice non é affatto difficile.

Hai una scheda come questa?

Ciao,
P.

Questo potrebbe essere un suggerimento...

byte scelta;

#define rele1 2
#define rele2 3
#define rele3 4
#define rele4 5
#define rele5 6


switch (scelta){
  case 1:
    // attiva i relè
    digitalWrite(rele1,HIGH);
    digitalWrite(rele4,HIGH);
    digitalWrite(rele5,HIGH);    

    // disattiva gli altri relé
    digitalWrite(rele2,LOW);    
    digitalWrite(rele3,LOW);    
    break;

  case 2:
    // attiva i relè
    digitalWrite(rele3,HIGH);
    digitalWrite(rele4,HIGH);

    // disattiva gli altri relé
    digitalWrite(rele1,LOW);    
    digitalWrite(rele2,LOW);    
    digitalWrite(rele5,LOW);    
    break;
}

Preferisco le cose più semplici e parametriche possibili, ossia ad esempio:

byte scelta;
#define TOT_RELE 8
byte rele[TOT_RELE] = {2,3,4,5,6,7,8,9};
// Logica inversa
#define ACCESO LOW
#define SPENTO HIGH
...
  // Accende il relè
  digitalWrite(rele[scelta], ACCESO);
...
  // Spegne il relè
  digitalWrite(rele[scelta], SPENTO);
...
  spegniTutto();
...
void spegniTutto() {
  for(byte i=0; i<TOT_RELE; ++i)
    digitalWrite(rele[i], SPENTO);
}