Gestione multipulsante

Ciao, io farei una cosa del genere.

  1. Alla pressione di ogni pulsante vado a spegnere tutti i led tramite un ciclo for()
  2. 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);
    }



}