Zitat Zitat von RCO
Ja, wie man das am besten macht, darüber denke ich auch schon die ganze Zeit nach. Allerdings weiß ich nicht wirklich wie ich da anfangen soll.
Dachte an sowas:
[...]
Das ganze ist ziemlich aufwendig und erfordert vermutlich viele Resourcen, aber ich wüßte im moment nicht, wie man es anders lösen sollte. Um eine Initialisierungsphase kommt man da wohl nicht rum.
Zu diesem Problem hatte ein Praktikant von mir eine saugeile Idee:
I-Regler - funktioniert folgendermaßen:
Man benötigt eine (signed) Korrekturvariable - im weiteren I genannt. Während einer Endlosschleife stellt man die Motorgeschwindigkeit auf MotorSpeed(Grundgeschw+I, Grundgeschw-I)
Außerdem nutzt man die Odometriesensoren. Findet beim linken Sensor ein Helligkeitswechsel statt (natürlich etwas Hysterese verwenden, sonst verzählt man sich) I um eins erniedrigen, für einen Wechsel beim rechten um eins erhöhen.
Nach kurzer Banane fährt ASURO sehr gut geradeaus. Ggf. kann man sich den Wert im EEPROM auch noch merken...

Der ADC kann übringens nach einer Wandlung automatisch einen Interrupt auslösen, sodass man das Problem auch im Hintergrund laufen lassen kann.

CU, Robin