Irgendwie ist das alles etwas durcheinander.. Es ehrt mich zwar, dass das Grundgerüst deines Codes immer noch das von mir gepostete ist, aber mit dem Infrarot dazwischen wird das jetzt nicht mehr so funktionieren. Denn mein Code war so gedacht:
  • Kein Hindernis -> Roboter fährt vorwärts
  • kurz vor Hindernis -> so lange nach links drehen bis absolut kein Hindernis mehr
  • vorwärts bis zum nächsten Hindernis -> so lange nach links drehen bis absolut kein Hindernis mehr
  • vorwärts bzw. wieder von vorne

Aber jetzt soll er irgendwie über infrarot merken, dass er sich nicht mehr weiter nach links drehen soll oder so, so ganz habe ich das auch noch nicht verstanden. Und man kann jetzt nicht das Programm so ändern wie du es willst, indem man einfach Zeilen dazu schreibt, sondern man muss das Programm durch und durch verstehen (!) und dann abändern (Wie Hannes auch schon schrieb). Ich habe mich da bei meinem Code anscheinend etwas zu viel auf aussagekräftige Variablennamen verlassen und zu wenig erläutert..

An deiner Stelle würde ich jetzt folgendermaßen vorgehen:
  1. Eine Skizze anfertigen (und hier posten. Entweder von Hand zeichnen und ein scharfes Foto machen, oder ein Foto von deinem Aufbau machen und genau erklären, oder auch am PC zeichnen wenn du passende Software hast)
  2. Ganz genau Punkt für Punkt erläutern was der Robo machen soll. Worauf soll er reagieren, was spielt alles eine Rolle etc. (Der hat auch kein "Verständnis" und erkennt selbst was du tun möchtest, du musst alles haarklein definieren)
  3. Herausfinden, wie die Sensoren des Roboters funktionieren, insbesondere bei welchen Werten du reagieren möchtest. Du schreibst z.B. dass er zu spät vor dem Hindernis stehen bleibt. Dann musst du zuerst einmal herausfinden bei welchem Abstandswert er reagieren soll. Um das zu tun schreibst du ein ganz einfaches Programm, das z.B. dass der Robo bis zu einem bestimmten Wert vorwärts fährt und dann stehen bleibt. Dann änderst du diesen Wert bis er dir passt, notierst ihn und postest ihn dann auch hier (das betrifft den Abstand und den Infrarot Wert)


Wenn du das hast, können wir dir helfen das Programm zu schreiben. Denn ich denke, dass du mit der bisherigen Vorgehensweise nicht mehr weiter kommst..

Viele Grüße
schumi

PS: Wie steht es eigentlich um deine Kenntnisse in Sachen C? Kannst du mit "#define" überhaupt was anfangen? Was ist der unterschied zu "const"? Und warum const' du deine SENSOR* Variablen?