Bei der dritten If-Abfrage fehlt etwas, aus
Code:
If READ_LINE_LEFT() And READ_LINE_RIGHT() >200
lieber das hier machen:
Code:
If READ_LINE_LEFT()>200 And READ_LINE_RIGHT() >200 Then
Und überlege auch, was der Roboter macht, wenn beide READ_LINE einen Wert unter 200 ergeben - dann ist nämlich keine einzige if-Bedingung erfüllt, d.h. der letzte Bewegungszustand wird beibehalten. Soll das so sein?
Falls beide READ_LINE Werte über 200 sein sollten, sind ja alle drei if-Bedingungen erfüllt, also wird der Controller nacheinander alle Befehle die darin enthalten sind, abarbeiten, in dem Fall also
MOTOR_DIR(1,0)
MOTOR_POWER(160,160)
MOTOR_DIR(0,1)
MOTOR_POWER(160,160)
DRIVE_FORWARD()
Damit werden die Motoren sehr oft umgeschaltet, könnte zu unerwünschten Fahrmanövern führen (oder der Roboter wird sehr langsam).
Das solltest du - wie bnitram schon geschrieben hat - mit if, else if, ..., else in den Griff bekommen (oder Verschachtelung von if).
Grüße, Bernhard
Lesezeichen