Da ist schon mal ein Pronzipielles Problem: mit dem Zählen der Impulse hat man eine nur relativ geringe Auflösung. Bei der Geringen Auflösung ist ein Differenzieren für eine PID Regler besonders schlecht. Wenn der Sollwert bei 10 sein soll, hat man bei funktionieren der Regelung für die Differenz wohl nur Werte von -1,0 oder 1 und damit alles andere als einen stetigen Regler.

Wenn möglich sollte man besser per ICP die Zeit messen wann an der Lichtschranke Flanken auftreten. So hat man wesentlich mehr Informationen. Wenn die Pulse nicht zu schnell kommen könnte es auch noch in basic gehen. Dann kann man sich immer noch entscheiden ob man die Geschwindigkeit oder die Position nachregeln will. Wenn man die Postion nachregelt, kommt man schon mit nur einem PD Regler aus. Das ganze wird dann ein Speziallfall eines Teilweise digitalen PLLs.