Das programm ist eigentlich simple( Ich hab heute um 2 uhr morgen gemacht für eine Ausführung in der TUHH, und hab daran noch nicht weiter gearbeitet).
Code:
#include "lib/essential.c"
#include "lib/analog.c"

#define FSPEED	0xFF
#define LSPEED	0x99
#define MDIST	15
#define DIST	100
#define FILTER	15

unsigned short data[2];

signed short diff;


int main(void)
{
	Init();
	FrontLED(OFF); // Infrarot einschalten
	
	while(1)
	{
		Analog(data);
		if(data[LEFT] > MDIST && data[RIGHT] > MDIST)
		{
			diff = data[LEFT] - data[RIGHT];
			
			if(abs(diff) < FILTER)
			{
				MotorSpeed(FSPEED, FSPEED);
				if(data[LEFT] > DIST + FILTER)
					MotorState(RWD, RWD);
				else if(data[LEFT] < DIST)
					MotorState(FWD, FWD);
				else
					MotorState(BREAK, BREAK);
			}
			else
			{
				MotorSpeed(FSPEED, FSPEED);
				if(diff > 0)
					MotorState(RWD, FWD);
				else
					MotorState(FWD, RWD);
			}
		}
		else
		{
			MotorState(BREAK, BREAK);
		}
	}
	
	return 0;
}
und, die schaltung? hmm, ich weis nicht wie ich es machen soll, einfach ne pnp-transistor: base zu frontled-kabel, current zu vcc, emiter zu die Sensoren und ir-led (bei Sensoren die kurzere beine und bei led die längere), und die längere beine der Sensoren verbindest du mit ADC-eingang der linienverfolgung und die kurzere bein der LED mit ground.

die verbindungskabel soll ambesten so aussehen:

http://schule.tu-harburg.de/wettbewe...nkelsensor.pdf

PS: widerstände nicht vergessen, und die library ist nicht standard, aber es soll auch mit normales asuro.h gehen (LineData)