dann fährt er schief
Oo
aber kP warum
und wenn ich ihn eine bestimmte strecke fahren lasse mit while(encoder[LEFT]<Strecke) dann hält er immer unterschiedlich spät an manchmal sogar garnicht!?
Druckbare Version
dann fährt er schief
Oo
aber kP warum
und wenn ich ihn eine bestimmte strecke fahren lasse mit while(encoder[LEFT]<Strecke) dann hält er immer unterschiedlich spät an manchmal sogar garnicht!?
mmh... naja vielleicht liegt das daran dass wenn er auf dem boden fährt die lichtverhältnisse sich ändern, und wenn er aufgebockt ist nicht... keine ahnung...
Hallo,
die Werte vom Radencoder sind stark davon abhängig, wie weit das Zahnrad vor den Radsensoren sitzt. Die Interrupt Service Routine erkennt nur eine Flanke, wenn der Wert mindestens unter 140 fällt und über 160 steigt.
Diese Werte sind aber stark einer Exemplarsteuung von Asuro zu Asuro unterworfen, sodaß nicht jeder Asuro die Flanken sauber erkennt.
Darum fährt ein Asuro vielleicht nicht die gewünschte Strecke.
Abhilfe kann man hier mit einer Min/Max Wert Bildung der Encoder Signale schaffen, dann kann man die Schwelle jedesmal neu bestimmen.
Gruß