Hallo
Für einen vernünftigen Stopwert solltest du zumindest das Mittel mehrerer Lesungen verwenden:
Code:
FrontLED(ON); // Front LED an
Sleep(10); //
LineData(lineData); // ADC "anwärmen"
LineData(STOP);
LineData(lineData);
STOP[0] = (lineData[0]+STOP[0])/2 +10; // STOP wert Berechnen (links)
STOP[1] = (lineData[1]+STOP[1])/2 +10; // STOP wert Berechnen (rechts)
(Die FrontLED dient ja wohl nur zur Deko...)
Wenn die Schleife bis zum Beleuchten der Photodioden ausgeführt werden soll, muss man prüfen, ob beide Werte jeweils kleiner als STOP sind:
while ((lineData[0] < STOP[0]) && (lineData[1] < STOP[1])); //solange bis der eingelesene Wert heller wird als STOP
Nach
Code:
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
BackLED(ON,ON);
startet er aber sofort wieder durch!
Gruß
mic
Lesezeichen