Hallo inka,

Dein robby nimmt ja richtig Gestalt an, klasse!

Dein erstes Problem liegt in
Code:
void alle_stepper_rueckwaerts(void)
{
  if (hindernis = true)
im "if" ist eine Zuweisung und kein Vergleich, sprich der Ausdruck ist immer wahr und daher rennt er da immer rein.

Dein zweites Problem liegt daran, das du in "rotieren_links()" bzw. "rotieren_rechts()" zwar die Stepper richtig konfigurierst, dann die Konfiguration aber nicht mit "fahrt_ausfuehren()" durchführen läßt.
Statt dessen wird die Stepperkonfiguration in "alle_stepper_vorwaerts()" wieder überschrieben und diese dann in "loop()" ausgeführt.
Wenn Du die Funktionsaufruffolge

alle_stepper_vorwaerts
> rechts_oder_links
-> z.B. rotieren_rechts

gedanklich durchgehst, siehst Du das dieses Überschreiben der Seiteneffekt auf die Stepper ist.

Du mußt also immer auch Überlegen ob nach Deiner Entscheidungsfindung die Stepper nicht nur konfiguriert sondern auch ausgeführt werden müssen.

Hoffe das bringt Dich einen Schritt weiter.

Gruß

Chris