Duecce:
volendo si potrebbe migliorare utilizzando una boolean nelle ISR per controllare che sia passato prima dalla prima fotocellula e poi dalla seconda.
... oppure, senza appesantire le ISR, con un IF nell loop :
if ((start == 0) && (end != 0)) { ... }
... vuol dire che c'è qualche cosa che non va ... qualcuno è passato prima davanti a end che a start XD
Guglielmo