riempimento e controllo vettori

salve a tutti , vorrei fare un progetto che, data una combinazione di 4 bit in input li salvi in un vettore(l'ho fatto e funziona) e dopo (e qui arriva il bello) li confronta con dei segnale che riceve in input da due pulsanti, uno che rappresenta lo zero e l'altro che rappresenta l'uno e nel caso si immettesse la stessa combinazione,salvata nel vettore, con i tasti si accenda un led.
La prima parte mi viene abbastanza facilmente ma la seconda non mi viene e non capisco il perchè.
vi lascio il mio codice

typedef struct s_struct {
  int  vett[4];
  int vett2[4];
  long cont;
  bool state = false;
} t_struct1;

t_struct1 t_struct;

int led = 12;
int button = 10;
int button2 = 11;

int j = 1;
int m = 0;

void  input();
void confronto();
void setup() {
  Serial.begin(115200);
  pinMode(led, OUTPUT);
  pinMode(button, INPUT);
  pinMode(button2, INPUT);

}





void loop() {
  input();
  confronto();
}



void input() {
  delay(1000);
  for (int i = 0; i < 4; i++) {
    delay(250);
    Serial.println("Inserisci il numero: ");
    while (Serial.available() == 0);
    t_struct.vett[i] = Serial.parseInt();
    delay(200);
  }


  for (int x = 0 ; x < 4; x++) {
    Serial.println(t_struct.vett[x]);
  }
}

void confronto() {
 
    Serial.println("work in progress");
    for (int s = 0; s < 4; s++) {
      if (digitalRead(button) == HIGH) {
        t_struct.vett2[s] = 1;
      } if (digitalRead(button2) == HIGH) {
        t_struct.vett2[s] = 0;
      }
    }
    m = 0;
    for (int c = 0; c < 4; c++) {
      if (m != 4) {
        if (t_struct.vett[c] == t_struct.vett2[c]) {
          m = m + 1;
        } else {
          digitalWrite(led, HIGH);
          t_struct.state = true;
        }
      }
    }

  

}

Grazie in anticipo a chi mi aiuterà

Questa parte di codice

for (int s = 0; s < 4; s++) {
      if (digitalRead(button) == HIGH) {
        t_struct.vett2[s] = 1;
      } if (digitalRead(button2) == HIGH) {
        t_struct.vett2[s] = 0;
      }
    }
    m = 0

Viene eseguito un ciclo for di 4 iterazioni, il ciclo dura pochi millesimi di secondo per cui non hai nessuna possibilità di premere i pulsanti.

Potresti usare un do while e una variabile contatore, ad ogni pressione di un pulsante contatore aumenta di uno, quando contatore arriva a 4 vuol dire che hai premuto 4 volte i pulsanti.

int i=0;

do{ // Quattro pressioni del pulsante la variabile i vale 4 e termina il ciclo.

      if (digitalRead(button) == HIGH) {
        t_struct.vett2[i] = 1;
        i++;
      }else  if (digitalRead(button2) == HIGH) {
        t_struct.vett2[i] = 0;
        i++;
      }
   


}while(i<4);

ilPanzer:
salve a tutti , vorrei fare un progetto che, data una combinazione di 4 bit in input li salvi in un vettore(l'ho fatto e funziona) e dopo (e qui arriva il bello) li confronta con dei segnale che riceve in input da due pulsanti, uno che rappresenta lo zero e l'altro che rappresenta l'uno e nel caso si immettesse la stessa combinazione,salvata nel vettore, con i tasti si accenda un led.

Grazie in anticipo a chi mi aiuterà

Boh io approccerei il problema così:

Hai un array da con la sequenza da cercare:

int  sequenceTofind[4];

Poi ti serve un variabile segnaposto per capire a che posizione sei arrivato

int actualPosition = 0;

Adesso serve gestire i pulsanti

int inputValue = -1;
if (digitalRead(button_0) == HIGH) 
{
    inputValue = 0;
} 
if (digitalRead(button_1) == HIGH) 
{
    inputValue = 1;
}

Poi un po' di logica

if (inputValue != -1
{
    if (sequenceTofind[actualPosition] == inputValue)
    {
         actualPosition++;
    }
    else (sequenceTofind[0] == inputValue)
    {
         actualPosition = 1;
    }
    else
    {
         actualPosition = 0;
    }
    inputValue = -1;
}

if(actualPosition == 4)
{
    switchOnLed();
    actualPosition = 0;
}

In pratica man mano che pigi sui pulsanti, confronti il valore corrispondente a quello della sequenza da confrontare in quel momento, se corrisponde passi quello successivo, altrimenti se corrisponde al primo della lista passi al secondo, altrimenti ricominci da capo.

E' realizzato alla cieca, potrebbe anche non funzionare

Ciao
Paolo