#define SESITYVITY_DIFF 65 #define MOTOR_SPEED 3 //0 to 9 int lastlevel; // To store the previous level task send_signal() { while(true) {SendMessage(0); Wait(10);} } task check_signal() { while(true) { lastlevel = SENSOR_1; if(SENSOR_1 > lastlevel + SESITYVITY_DIFF) { //OnRev(OUT_C); Wait(85); OnFwd(OUT_A+OUT_C); Off(OUT_A+OUT_C); SetPower(OUT_A+OUT_C,9); //take turn with full power SetDirection(OUT_A+OUT_C,OUT_TOGGLE); PlaySound(1);PlaySound(1); On(OUT_A+OUT_C); turn_around(75); SetPower(OUT_A+OUT_C,MOTOR_SPEED); //Wait(500); } } } void turn_around(int turntime) { Off(OUT_C); Wait(turntime); On(OUT_C); SetDirection(OUT_A+OUT_C,OUT_TOGGLE); } task main() { SetPower(OUT_A+OUT_C,MOTOR_SPEED); SetSensorType(SENSOR_1, SENSOR_TYPE_LIGHT); SetSensorMode(SENSOR_1, SENSOR_MODE_RAW); OnRev(OUT_A+OUT_C); start send_signal; start check_signal; }