Linear optical encoder zu ungenau?

Hallo zusammen,

habe von einem alten Drucker den Schlitten mit Druckkopf + DC Motor verwendet und will damit verschieden Positionen anfahren. Das ganze erfolgt über die PID Library. Als Istwert bzw. Input verwende ich die Werte des linear optical encoder vom Druckerschlitten.

Das ganze ist aber auch nach Testen vieler Werte für Kp;Ki,Kd sehr ungenau (Wenn ich die erste Position bei 2348 anfahren will komme ich bei 2450 raus). Verstehe nicht ganz an was es liegt bzw. bin mir nicht ganz sicher wie man das mit dem encoder machen soll.

Wenn ich mir die Encoder Werte im Seriellen Monitor ausgeben lassen, sind diese sehr sprunghaft. Als ich den Strip per Hand durchgezogen habe (zum Testen am Anfang) waren die Werte sehr kontinuierlich. Liegt das nun an der Übertragungsrate des Seriellen Monitors oder ist der Encoder zu schnell für mein Arduino Uno?

wenn das ganze fertig wird, soll es eine useless box mit 7 Schalter werden.

Vielen Dank schon mal im Voraus für jegliche Hilfe!

mb12

druckerschlitten.ino (3.62 KB)

Ich kann mir vorstellen daß der Arduino den Datenfluß des Sensors nicht 100% erfassen kann.

Ohne Schaltung und Sketch wird das aber hier zum Ratespiel ohne Gewinner.
Grüße Uwe

Möglicherweise muß das Abbremsen vor dem Erreichen der Endposition speziell gehandhabt werden. Teste mal, wie weit der Schlitten weiterläuft, wenn er aus voller Fahrt gestoppt wird. Dann weißt Du, wie weit vor der Endposition schon abgebremst werden muß.