Ciao, io farei una cosa del genere.
- Alla pressione di ogni pulsante vado a spegnere tutti i led tramite un ciclo for()
- Per ogni pulsante premuto accendo tramite una serie di digitalWrite(), tutti i led che voglio accendere.
Per spegnere i led tramite ciclo for(), questi devono o usare pin in sucessione, esempio 1-2-3-4, o usare un array dove inserire i pin dei led, in questo caso, se si usa un array, i pin possono essere anche in ordine sparso, ad esempio 1-2-9-11.
Visto che immagino tu stia utilizzando un arduino Mega, visto il numero di pin elevato. Ti propongo un esempio che usa un array.
byte led[10]={1,2,3,4,5,10,23,34,36,40}; //Dieci pin scelti casualmente
void setup(){
}
void loop{
/*per ogni pulsante scrivo una riga come questa*/
if(digitalRead(pulsanteUno)==HIGH){
SpegnimentoLed();//Spengo tutti i led
/*Accendo i led che voglio*/
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
}else if(digitalRead(pulsanteDue)==HIGH){
SpegnimentoLed();//Spengo tutti i led
/*Accendo i led che voglio*/
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
}
}
void SpegnimentoLed(){
int i=0;
for(i=0;i<10;i++){// conto da 0 a 9, al posto di 10 mettere il numero giusto di led
digitalWrite(led[i],LOW);
}
}