variabile non si incrementa

Ho notato solo un errore banale che è la causa del malfunzionamento
ma non ho analizzato il codice nel dettaglio.

  d=digitalRead(in);
  if ( in== 1){a=a+1;delay(500);}

La variabile 'd' contiene lo stato del pin letto con digitalRead(), mentre pin è una costante numerica che identifica il numero assegnato al pin di arduino.

Se non è chiaro il controllo if (... deve essere fatto sulla variabile 'd', cioè:

if ( d == 1) { 
    a = a + 1;   // oppure a++; o ++a; in questo contesto sono validi entrambe
   delay(500);
}

Ciao.