void RobotLine::loop() {
if (line(8))
go(-90, 90);
else if (line(0))
go(90, -90);
else if (line(5))
go(10, 90);
else if (line(3))
go(90, 10);
else
go(60, 60);
}
Praćenje crte pomoću 2 senzora radi dobro, sve dok se ne pojave oštri zavoji. Problem je što, za praćenje blagih zavoja, razlika u brzinama lijevih i desnih koatača ne smije biti prevelika. Za oštre zavoje treba biti vrlo velika. U suprotnom će robot na zavoju produžiti ravno.
Znači, pomoću samo 2 tranzistora nije moguće skretati i jako i slabo. Srećom, tranzistora imamo dovoljno. Uključimo još 2 u program, kao što je u kodu lijevo:
- 8, krajnji lijevi,
- 5, lijevi,
- 3, desni i
- 0, krajnji desni.
U slučaju da jedan od krajnja 2 tranzistora zahvati liniju, okrećemo robota u mjestu (brzine 90 i -90).
Uočite da u kodu prvo proučavamo krajnje tranzistore jer oni imaju veći prioritet: ako u oštrom zavoju liniju vidi lijevi i krajnji lijevi, trebamo okretati robota u mjestu, ne skretati blago.