contatore di impulsi

attualmente il mio codice è questo:

int contatore1 = 0; // variabile di memorizzazione del numero di oggetti contati
int contatore2 = 0;
int contatore3 = 0;
int contatore4 = 0;
int contatore5 = 0;
int contatore6 = 0;
int contatore7 = 0;
int contatore8 = 0;
int semaforo = 0; // variabile che funge da semaforo, utilizzata per evitare di contare
// piu' volte il medesimo oggetto
int statosensore1 = 0; // variabile di memorizzazione dello stato (LOW oppure HIGH) del
// modulo keyesir
#define sensore1 14 // il pin "out" del modulo keyesir e' collegato alla porta 7
int statosensore2 = 0;
#define sensore2 15
int statosensore3 = 0;
#define sensore3 16
int statosensore4 = 0;
#define sensore4 17
int statosensore5 = 0;
#define sensore5 18
int statosensore6 = 0;
#define sensore6 19
int statosensore7 = 0;
#define sensore7 20
int statosensore8 = 0;
#define sensore8 21
//
void setup()
{
  Serial.begin(9600); // inizializza il monitor seriale
  pinMode (sensore1, INPUT);// il sensore viene definito come unita' di input
}
//
void loop()
{
  {
  
  statosensore1 = digitalRead (sensore1); // rileva lo stato del modulo
  if (statosensore1 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore1 == LOW)) // se c'e' un nuovo ostacolo non conteggiato
    semaforo = 1; // considera conteggiato l'ostacolocontatore1 = contatore1 + 1; // conteggia l'ostacolo
  Serial.println(contatore1);
}
{

  statosensore2 = digitalRead (sensore2); // rileva lo stato del modulo
  if (statosensore2 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore2 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore2 = contatore2 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore2);
}
{
  statosensore3 = digitalRead (sensore3); // rileva lo stato del modulo
  if (statosensore3 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore3 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore3 = contatore3 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore3);
}
{

  statosensore4 = digitalRead (sensore4); // rileva lo stato del modulo
  if (statosensore4 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore4 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore4 = contatore4 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore4);
}
{
  statosensore5 = digitalRead (sensore5); // rileva lo stato del modulo
  if (statosensore5 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore5 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore5 = contatore5 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore5);
}
{
  statosensore6 = digitalRead (sensore6); // rileva lo stato del modulo
  if (statosensore6 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore6 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore6 = contatore6 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore6);
}
{
  statosensore7 = digitalRead (sensore7); // rileva lo stato del modulo
  if (statosensore7 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore7 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore7 = contatore7 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore7);
}
{
  statosensore8 = digitalRead (sensore8); // rileva lo stato del modulo
  if (statosensore8 == HIGH) // se non ci sono ostacoli
    semaforo = 0; // spegne il semaforo in modo da predisporsi alla conta
  // del prossimo ostacolo
  if ((semaforo == 0) && (statosensore8 == LOW)) // se c'e' un nuovo ostacolo non conteggiato

    contatore8 = contatore8 + 1; // conteggia l'ostacolo
  semaforo = 1; // considera conteggiato l'ostacolo
  Serial.println(contatore8);
}
}

in pratica ho collegato ogni sensore (uscita out) ai pin digitali. ora sono a casa ma domani (fine del progetto) e non ho con me arduino dovrei testarlo,
oggi quando l'ho provato a scuola non avevo messo le parentesi come ora, quindi leggeva (e male) solo il primo visualizzandolo sul monitor seriale. era tutto scritto di fila, ora dovrebbe andare.
cmq mi rimane il problema del display, sono riuscito a fare una bella grafica di 8 bottoni, ma non riesco ad assegnare ad essi la funzione di leggermi il contatore.

come posso fare?

il mio display è: ft 320qvt_9341 15a