Hab zwischen drin auch schon an sowas gedacht, aber irgendwie kann das doch nicht sein.

Wie könnte man denn in das vorherige Programm nen Infrarot reinbekommen?

Code:
#include "qfixMiniBoard.h"
#include "qfixLCD.h"


const    int SENSOR3 = 3;
        int SENSOR1 = 1;
        int SENSOR2 = 2;
        int SENSOR = 0;

MiniBoard robot;
LCD lcd;

#define geradeaus        0
#define linksDrehung    1
#define rechtsDrehung    2

#define hindernis        95
#define freieSicht        120 // Wenn der Robo etwas nach links fährt, aber dann gegen das Hindernis, ist dieser Wert zu klein

#define True            1
#define False            0

int main() 
{
    unsigned char drehrichtung = geradeaus;    // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM
    unsigned char schonNachLinksAusgewichen = False;    
  
    while(1)
    {
        int abstand   = robot.analog(1);
		//int infrarot  = robot.analog(3);
        if( drehrichtung == geradeaus)
        {
		robot.motors(25,25); //geradeaus fahren
            if( abstand < hindernis)
            {
                if(schonNachLinksAusgewichen == False)
                    drehrichtung = linksDrehung;
                else
                    drehrichtung = rechtsDrehung;
            }
        }
        if( drehrichtung == linksDrehung )
        {
			
		    robot.motors(-255, 255); // nach links drehen
			
            if( abstand >= freieSicht )
            {
                robot.motors(125,125);
                schonNachLinksAusgewichen = True;
				//if( infrarot > 180){
				//robot.motors(100,-100);
				//msleep(500);
				//}
				
            }
        }
        if( drehrichtung == rechtsDrehung )
        {
            robot.motors(200, -200); // nach rechts drehen
            if( abstand >= freieSicht )
            {
                robot.motors(100,100);
                schonNachLinksAusgewichen = False; 
				//msleep(500);
				//if( infrarot > 180){
				//robot.motors(-100,100);
				//}
	
			// Er ist zwar schon mal nach links ausgewichen, aber inzwischen auch schon rechtsrum, also wieder von vorne
			
			
			
			
			
			}  
		}		  
	}
}
Im Prinzip müsste das Infrarot doch richtig sein oder nicht? Weil darauf reagiert er schlichtweg nicht...

Edit: Auch da ist sowas seltsam: Wenn ich bei der geradeaus-Schleife die Motoren auf 0 stelle fährt der trotzdem...was ist da los?
Und der dreht sich, egal was ich einstelle einfach nicht weit genug(der Abstandssensor reagiert nur bis 100, das FreieSicht geht nur bis 170). Was könnte ich da tun?

Denn irgendein Programm brauch ich, auch wenn es nur halb geht.