Hallo!

Ich stimme RP6conrad zu und glaube auch, daß es ein Meßproblem ist. Auch wenn jetzt jedes 2. Kettenglied weiß ist - vielleicht erzeugt die Messung zuviele Flanken? Kannst Du prüfen, ob bei einem vollständigen Umlauf der Kette auch die richtige Anzahl Impulse gezält werden?

Wenn nämlich "Geister-Impulse" auftauchen (also mehrere Flankenwechsel wo nur einer auftreten sollte) dann kann ich mir gut vorstellen, daß der Regler versucht zu bremsen und die Kette stehen bleibt oder gar rückwärts läuft.

Do
KL = 200 + PID
KR = 200 + PID

Drive(KL,KR)
Loop

Dann im interrupt alle 250ms:

PIDL = PI-Regler
PIDR = PI-Regler
Ich muß zugeben, daß ich jetzt nicht wirklich weiß wovon ich rede - aber ich glaube, der Reglerwert sollte nur im festen Zeitintervall aufaddiert werden. Laut dem Code wird bei Dir ja ständig die Antriebsgeschwindigkeit geändert (?). Kann noch mal jemand mit Ahnung diesen wichtigen Teil verifizieren?

MfG
Martin