Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Wykorzystanie funkcji millis w arduino do precyzyjnego pomiaru czasu

Co to jest funkcja millis w arduino?

Funkcja millis() w platformie Arduino jest narzędziem używanym do pomiaru czasu od momentu, gdy płytkę uruchomiono lub zresetowano.

Jest to bardzo przydatne narzędzie do tworzenia precyzyjnych interwałów czasowych w projektach związanych z mikrokontrolerami.

Jest to alternatywa dla funkcji delay(), która blokuje działanie mikrokontrolera przez określony czas, uniemożliwiając mu wykonywanie innych zadań. Dzięki funkcji millis() możliwe jest tworzenie kodu, który wykonuje różne zadania równocześnie, co znacznie zwiększa elastyczność i wydajność projektów opartych na Arduino.

Ponadto, funkcja millis() pozwala uniknąć problemów związanych z przekroczeniem zakresu czasowego, które mogą wystąpić przy korzystaniu z funkcji delay() w dłuższych programach.

Jak działa funkcja millis w arduino?

Główna zasada działania funkcji millis() polega na liczeniu czasu w milisekundach od momentu uruchomienia płytki Arduino. Jest to możliwe dzięki wbudowanemu licznikowi czasu, który jest inkrementowany co milisekundę.

Wartość zwracana przez funkcję millis() jest liczbą całkowitą typu unsigned long, co oznacza, że może ona przechowywać wartości od 0 do 4,294,967,295 (2^32 – 1), co odpowiada około 49 dniom czasu.

Po upływie tego czasu licznik zaczyna liczyć od nowa, co może być problemem w niektórych zastosowaniach, szczególnie jeśli projekt wymaga śledzenia długich interwałów czasowych. W takich przypadkach konieczne może być wykorzystanie dodatkowych technik, takich jak biblioteka TimeLib.h, która umożliwia pracę z czasem z większą precyzją.

Praktyczne zastosowania funkcji millis w projektach arduino

Funkcja millis() znajduje szerokie zastosowanie w różnych projektach opartych na platformie Arduino. Poniżej przedstawione są niektóre z najpopularniejszych zastosowań tej funkcji:

a) Sterowanie czasem: Możliwe jest wykorzystanie funkcji millis() do sterowania czasem trwania różnych operacji w projekcie. Na przykład, można użyć jej do kontrolowania czasu działania silników, oświetlenia lub innych urządzeń.

b) Obsługa zdarzeń czasowych: Funkcja millis() może być używana do planowania i obsługi zdarzeń czasowych, takich jak odczytywanie czujników co określony czas, wyświetlanie komunikatów na wyświetlaczu LCD lub wykonywanie innych zadań cyklicznych.

c) Pomiar czasu reakcji: Dzięki funkcji millis() możliwe jest dokonywanie precyzyjnych pomiarów czasu reakcji w różnych układach, co może być przydatne na przykład w projektach związanych z robotyką lub automatyką.

Przykład użycia funkcji millis w prostym projekcie arduino

Aby lepiej zrozumieć, jak działa funkcja millis() w praktyce, warto przyjrzeć się prostemu przykładowi jej użycia. Poniżej znajduje się kod Arduino, który miga diodą LED z częstotliwością 1 Hz, korzystając z funkcji millis():


const int ledPin = 13;
unsigned long previousMillis = 0;
const long interval = 1000;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
digitalWrite(ledPin, !digitalRead(ledPin));
}
}

Funkcja millis() jest potężnym narzędziem w arsenale każdego twórcy projektów opartych na platformie Arduino. Pozwala ona na precyzyjne zarządzanie czasem i tworzenie zaawansowanych aplikacji, które wykonują wiele zadań równocześnie. Zrozumienie jej działania i właściwe wykorzystanie może znacząco zwiększyć wydajność i elastyczność projektów elektronicznych.

Nie wahaj się eksperymentować z funkcją millis() w swoich projektach i odkrywać nowe możliwości, jakie oferuje w programowaniu mikrokontrolerów!