/* Please visit my website: http://nxt.meinblock.eu 12/25/2008 25.12.2008 */ #define LM OUT_B // linker Motor #define RM OUT_C // rechter Motor #define LS IN_2 // Lichtsensor #define US IN_3 // Ultraschallsensor #define SS IN_1 // Soundsensor #define TS IN_4 // Tastsensor #define MP 30 // Motorpower #define TO 2 // Tolleranz task main() { SetSensorLowspeed(US); SetSensorSound(SS); SetSensorTouch(TS); SetSensorLight(LS); TextOut(10, LCD_LINE1, "schwarz..."); Wait(2000); int black = Sensor(LS); // schwarz definieren TextOut(10, LCD_LINE1, "rechts daneben"); Wait(2000); int white = Sensor(LS); // weiss definieren int average = (white+black)/2; int i = 0; while(true) { if(Sensor(LS) < (average-TO)) { while(Sensor(LS) < (average-TO)) { i++; OnFwd(LM, (2*MP+i)/2); OnFwd(RM, MP/3); Wait(20); if(i == (200-2*MP)) break; } i = 0; } OnFwd(RM, MP); OnFwd(LM, MP); if(Sensor(LS) > (average+TO)) { while(Sensor(LS) > (average+TO)) { i++; OnFwd(RM, (2*MP+i)/2); OnFwd(LM, MP/3); Wait(20); if(i == (200-2*MP)) break; } i = 0; } OnFwd(LM, MP); OnFwd(RM, MP); } }