Contapezzi (Il mio primo progetto e non funziona)

Ok, ho commentato il codice, sperando di essermi riuscito a spiegare bene.

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
/* Ho 3 ingressi che vengono selezionati da un selettore per 
definire quale dei tre contatori devo invrementare,(Selezione manuale).
un ingresso per il reset del contatore che ho selezionato mediante il selettore ed una
fotocellula per incrementare il contatore che ho selezzionato
*/
int SelettoreA;
int SelettoreB;
int SelettoreC;
int Reset_pezzi;
int F_Cellula;

//De finisco le variabbili che conterranno il valore accumulato (Pezzi contati)
int pezziA = 0;
int pezziB = 0;
int pezziC = 0;

//Pausa per antiribbalzo
int pausa=100;

void setup ()
{
  // Definisco il tipo di display
  lcd.begin(16, 2);
  //Inizzializzo la seriale
  Serial.begin(9600);
  //definisco i pin che utilizzo per i miei ingressi
  pinMode (0, INPUT); // Selettore in posizione 1
  pinMode (10, INPUT); // Selettore in posizione 2
  pinMode (11, INPUT); // Selettore in posizione 3
  pinMode (12, INPUT); // Pulsante reset
  pinMode (13, INPUT); //Fotocellula per il conteggio
  // Messaggio iniziale
  lcd.setCursor(0, 0); //Posizione il cursore nella prima riga al primo carattere
  lcd.print("conteggio");
  lcd.setCursor(0, 1); //Posizione il cursore nella seconda riga al primo carattere
  lcd.print("pezzi");
  delay(3000); //Attendo tre secondi
  lcd.clear(); //Cancello tutto
 }
  
  void loop ()
 {
   //Leggo ciclicamente gli ingressi digitali e li assogio alle varibbili
  SelettoreA=digitalRead(0); //Ingresso ad 1 se il selettore si trova in questa posizione
  SelettoreB=digitalRead(10); //Ingresso ad 1 se il selettore si trova in questa posizione
  SelettoreC=digitalRead(11); //Ingresso ad 1 se il selettore si trova in questa posizione
  Reset_pezzi=digitalRead(12); //Ingresso ad 1 se il pulsante reset è piggiato 
  F_Cellula=digitalRead(13); //Ingresso ad 1 se il pezzo è dinanzi alla fotocellula
  
  //__________________________________________________________
  if (SelettoreA==HIGH){ // Se il selettore si trova in posizione A visualizzo sul display che voglio contare i pezzi tipo A
  lcd.setCursor(0, 0); 
  lcd.print("Pezzi TIPO A");
  Serial.print("Pezzi TIPO A"); // Scrivo in seriale monitor
  Serial.print("\n\r");  // Vado d'accapo in seriale monitor
  }
  /* Se il selettore si trova in posizione A ed il pezzo è dinanzi alla fotocellula incremento il
  valore di una unità nella varibbile pezziA
 */ 
  if ((SelettoreA==HIGH) && (F_Cellula==HIGH)){
  pezziA++; //Incremento di uno
  lcd.setCursor(0, 1); //Setto la posizione del cursore sull'LCD
  lcd.print(pezziA); //Scrivo il valore contenuto in pezziA sull'LCD
  Serial.print(pezziA); // Scrivo anche in serial monitor
  Serial.print("\n\r"); // Vado accapo
  delay(pausa); //Pausa anti ribbalzo
  }
  //__________________________________________________________
  if (SelettoreB==HIGH){ // Se il selettore si trova in posizione A visualizzo sul display che voglio contare i pezzi tipo B
  lcd.setCursor(0, 0); 
  lcd.print("Pezzi TIPO B");
  Serial.print("Pezzi TIPO B");// Scrivo in seriale monitor
  Serial.print("\n\r"); // Vado d'accapo in seriale monitor
  }
  /* Se il selettore si trova in posizione B ed il pezzo è dinanzi alla fotocellula incremento il
  valore di una unità nella varibbile pezziB
 */ 
  if ((SelettoreB==HIGH) && (F_Cellula==HIGH)){
  pezziB++; //Incremento di uno
  lcd.setCursor(0, 1); //Setto la posizione del cursore sull'LCD
  lcd.print(pezziB); //Scrivo il valore contenuto in pezziA sull'LCD
  Serial.print(pezziB); // Scrivo anche in serial monitor
  Serial.print("\n\r"); // Vado accapo
  delay(pausa);//Pausa anti ribbalzo
  }
  //__________________________________________________________
  if (SelettoreC==HIGH){ // Se il selettore si trova in posizione A visualizzo sul display che voglio contare i pezzi tipo C
  lcd.setCursor(0, 0); 
  lcd.print("Pezzi TIPO C");
  Serial.print("Pezzi TIPO C"); // Scrivo in seriale monitor
  Serial.print("\n\r");  // Vado d'accapo in seriale monitor
  }
   /* Se il selettore si trova in posizione C ed il pezzo è dinanzi alla fotocellula incremento il
  valore di una unità nella varibbile pezziC
 */ 
  if ((SelettoreC==HIGH) && (F_Cellula==HIGH)){
  pezziC++; //Incremento di uno
  lcd.setCursor(0, 1);//Setto la posizione del cursore sull'LCD
  lcd.print(pezziC);//Scrivo il valore contenuto in pezziA sull'LCD
  Serial.print(pezziC);// Scrivo anche in serial monitor
  Serial.print("\n\r");// Vado accapo
  delay(pausa);//Pausa anti ribbalzo
  }
  //__________________________________________________________
  /*Se il selettore si trova in posizione A ed il tasto reset è piggiato resetto il contatore A */
  if ((SelettoreA==HIGH) && (Reset_pezzi==HIGH)){
  pezziA=0;
  Serial.print("Reset Pezzi TIPO A");
  Serial.print("\n\r");
  delay(pausa);
  }
  /*Se il selettore si trova in posizione A ed il tasto reset è piggiato resetto il contatore B */
  if ((SelettoreB==HIGH) && (Reset_pezzi==HIGH)){
  pezziB=0;
   Serial.print("Reset Pezzi TIPO B");
   Serial.print("\n\r");
  delay(pausa);
  }
   /*Se il selettore si trova in posizione C ed il tasto reset è piggiato resetto il contatore C */
  if ((SelettoreC==HIGH) && (Reset_pezzi==HIGH)){
  pezziC=0;
   Serial.print("Reset Pezzi TIPO C");
   Serial.print("\n\r");
  delay(pausa);
  }
  }

Che segnale Ti da la fotocellula?

Al momento non ho la fotocellula, ma ho collegato dei pulsanti. In futuro utilizzerò una fotocellula con contatto NA