Hallo

Ich habe mir bisher nur den isBlack-Teil deines Programms angeschaut und ich verstehe nicht ganz, was du damit bezwecken willst. Zuerst liest du zig mal die Werte der Liniensensoren ein und letztlich wird doch eh nur der zuletzt gelesene Wert verwendet. Und wie kommst du eigentlich auf die +10-Toleranz bei der hell/dunkel-Entscheidung?

Um eine halbwegs verlässliche Referenz für Dunkel zu erhalten würden ein paar Lesungen mit Mittelwertbildung ausreichen:

LineData(black);
LineData(black); // sicher ist sicher ;)
for (i = 0; i < 5; i++) {
Sleep(50);
LineData(lineData);
black[0]=(black[0]+lineData[0])/2;
black[1]=(black[1]+lineData[1])/2;
}

Gruß

mic