Schrittmotor ruckelt beim starten (Nullpunkt an Lichtschranke)

Ich denke mal, das deine Steppermotorinitialisierung falsch ist

DirA und DirB als Ausgang der Stepperbibliothek zu benutzen heist ja, das du ihn vorwärts und rückwärts schaltest.

Grundsätzlich versteh ich das ganze Programm nicht, da Steppermotoren eigentlich nicht per PWM gesteuert werden, sondern mit einer Frequenz. Leider finde ich nur eine Beispielbeschreibung zum DC-Motor für das Shield. Auch wenn gesagt wird, das er Steppermotoren steuern könnte.

Beispiele für DC-Motoren nutzen PWM, Steppermotoren nicht. PWM wird mit einer festen Frequenz getaktet und dabei die Pulslänge variiert. Steppermotoren drehen sich synchron zur Frequenz. DC Motoren regelt man runter indem man ihnen die Leistung wegnimmt, Stepper würden solange konstant weiter drehen bis sie zuwenig kraft haben und dann schlagartig stehen bleiben.

Schau also mal nach Beispiele zu deinem Shield die den Steppermotor beschreiben. Ansonsten leg die dir-signale auf feste Pegel (direktion also Richtung) und lege deine Stepper-lib auf 3 und 11. Und schau wie es dann funktioniert. Den so wie es aussieht gibst du ja PWM drauf und taktest dann an DIT A und DIR B rum.