Łazik omijający przeszkody na millis() część 1

Teoria

Stosowanie w Arduino delay() jest bardzo popularne. Niestety, mimo że jest łatwe w implementacji posiada bardzo dużą wadę – zatrzymuje program na określoną ilość czasu, przez co procesor nie może wykonywać kolejnych instrukcji. Rozwiązaniem tego jest funkcja millis(), bowiem zwraca ona ilość milisekund od czasu włączenia procesora. Najlepiej funkcję millis przypisać do dużej zmiennej, aby szybko nie doszło do przepełnienia zmiennej np. unsigned long. Nasz mały łazik został napisany w millis, dzięki czemu może on wykonywać kilka czynności na raz: sterowaniem diodami RGB, wykrywaniem kolizji, wykonywanie procedur omijania przeszkód oraz przetwarzaniem danych z trzech czujników podczerwieni na raz. Jak widać daje to większe możliwości niż wykorzystanie delay() czyli marnowanie potencjału procesora.

Przykładowa implementacja: