Unsuportet block found


#1

Poštovanje , Kada sam pokušao složiti “IF else then” u program da mi se robot kreće naprijed dok ne naiđe na crnu podlogu , svaki put bi me izbacio iz arduino moda. Zna li netko u čemu griješim .Tu su i slike programa i moj broj 098 1847907.


#2

Forever petlja ne smije biti unutar if-a.
(Forever je ustvari main funkcija iz arduina, i ne smije biti “unutar nečega”)
Ako je potrebno koristiti beskonačnu petlju stavite repeat until petlju ( i onda zauvijek neistinit uvjet npr. 2=3:)


#3

@zileho, @jjuric vam je već odgovorio o razlogu greške a ja bih samo rekao da vam program ne bi radio dobro pa i da se dobro iskompajlira.

Kao prvo u IF-u testirate na vrijednost VEĆU od 3 a line follower vraća vrijednosti 0,1,2 i 3 gdje je 3 nedostatak linije. Dakle nikada neće ni ući u taj IF dio. Pretpostavljam da ste htjeli napisati < 3 i time provjeriti da je robot naišao na liniju?
No ni tada program neće uvijek dobro raditi jer ukoliko unutar 0.4 sec nakon skretanja nije stigao do linije - nastaviti će se kretati u beskonačno brzinom od 50.

Ukoliko je potrebno čekati da naiđe linija tada je možda bolje nakon
wait 0.4 sec
staviti
repeat until line follower (port2) <> 3
pa tek nakon toga staviti forever petlju

Drugi pristup je da stavite malo veći wait pa odmah nakon toga krenete sa forever petljom. Ravni dio je ionako dovoljno dug da robot ulovi liniju makar vrijeme bilo i duže nego mu treba da dođe do početka linije.

Treći pristup je da uklonite wait i pustite repeat until da čeka na pojavljivanje linije.