Was mir schon einmal auffällt ist das du in der while Schleife ("while(1)") "unsigned char Hindernis = false;" steht. Gehe einmal durch was das Programm macht. Normalerweise müsste sich der Roboter immer nach vorne bewegen. Du sagst vor der if Schleife immer das Hindernis falsch ist und somit wird nur der if... Zweig und nie der else Zweig ausgeführt.
Gleichzeitig gibts du das "#define geradeaus 0" weg. Stattdessen weißt du links 0 zu und rechts 1.
Wenn du vor dem links bzw rechtsdrehen noch zurückfahren willst kannst du so schreiben:
Code:
if (drehrichtung == links)
{robot.motors (-100, -100);
msleep(100);
robot.motors (-200, 200);
drehrichtung = rechts;
}
MfG Hannes
Lesezeichen