Arduino Polska Forum
Pomiar czasu za pomocą Arduino - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Pomiar czasu za pomocą Arduino (/watek-pomiar-czasu-za-pomoc%C4%85-arduino)

Strony: 1 2 3


Pomiar czasu za pomocą Arduino - Mick_SQ6IYV - 07-09-2018

Witam Wszystkich!

Jestem początkującym użytkownikiem platformy Arduino. Mam kilka książek na jego temat, ale w żadnej nie mogę znaleźć podpowiedzi jak mierzyć czas za pomocą Arduino. Nie chodzi mi o budowę zwykłego zegara, tylko o pomiar czasu pomiędzy dwoma (i więcej) zdarzeniami. Potrzebny jest do tego Zegar Czasu Rzeczywistego (RTC) czy obejdzie się bez tego?


RE: Pomiar czasu za pomocą Arduino - es2 - 07-09-2018

(07-09-2018, 13:36)Mick_SQ6IYV napisał(a): pomiar czasu pomiędzy dwoma (i więcej) zdarzeniami. Potrzebny jest do tego Zegar Czasu Rzeczywistego (RTC) czy obejdzie się bez tego?

Jakiej długości czasy chcesz mierzyć?
Z jaką rozdzielczością?
Z jaką dokładnością?


RE: Pomiar czasu za pomocą Arduino - Mick_SQ6IYV - 07-09-2018

W zasadzie chodzą mi dwa projekty:

Projekt 1 związany z pomiarem czasu o długości około 10 - 20 sekund, rozdzielczość i dokładność na poziomie 0,01 s.

Projekt 2 związany z pomiarem czasu o długości powyżej 1 minuty, rozdzielczość i dokładność na poziomie 1 s.

Oczywiście, jeśli można poprawić rozdzielczość o jeden rząd (w obu projektach), to też będzie dobrzeSmile


RE: Pomiar czasu za pomocą Arduino - Robson Kerman - 07-09-2018

W funkcji obsługi pierwszego zdarzenia musisz zapisać do zmiennej aktualny czas:
Kod:
unsigned long czasStart = millis();

W funkcji obsługi drugiego zdarzenia, tez musisz spojrzeć na zegarek:
Kod:
unsigned long czasStop = millis();

Różnica w pomiędzy naszymi zmiennymi, to właśnie zmierzony czas:
Kod:
unsigned long Czas = czasStop - czasStart;

Dokładność 0.001s.


RE: Pomiar czasu za pomocą Arduino - es2 - 07-09-2018

(07-09-2018, 14:38)Robson Kerman napisał(a): Dokładność 0.001s.

Rozdzielczość administratorze, rozdzielczość. I raczej nie 1ms w Arduinio, bo są tam milisekundy "przestępne" i faktyczna rozdzielczość jest mniejsza.
Ogólnie pojęta dokładność będzie na poziomie 20..50ppm, ogólnie, bo jest dokładność krótko i długoterminowa. Jaka interesuje kolegę Mick_SQ6IYV? Czy potrzebna większa np 2ppm? Bez tego nie można odpowiedzieć, czy potrzebny będzie zewnętrzny układ, np precyzyjny RTC.. A może trzeba bardzo dużej dokładności np 100bpm lub więcej?


RE: Pomiar czasu za pomocą Arduino - Mick_SQ6IYV - 07-09-2018

Super, już jakaś podpowiedźSmile Nadal jednak nurtują mnie dwie kwestie:

1. Potrzebuję używać do obu celów zegara RTC czy nie? Oba projekty to szeroko pojęte minutniki, zegary do mierzenia czasu (pomiędzy dwoma zdarzeniami).

2. Komendy, o których mówi Robson Kerman, są elementami biblioteki standardowej czy innej (jeśli tak, to jakiej)?


RE: Pomiar czasu za pomocą Arduino - kaczakat - 07-09-2018

Ten przykład z millis() jest w standardowych przykładach już wbudowanych w IDE Arduino i nie wymaga żadnego dodatkowego elementu czy biblioteki: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay . Podobną funkcją dla us jest micros().
Jakie książki masz, że nie jest to opisane? Chyba, że tylko je masz, przeczytałeś?


RE: Pomiar czasu za pomocą Arduino - es2 - 07-09-2018

(07-09-2018, 15:31)Mick_SQ6IYV napisał(a): 1. Potrzebuję używać do obu celów zegara RTC czy nie?

Szklana kula mi się zepsuła, napisz w końcu jakiej dokładności oczekujesz. 20..50ppm? 2ppm? 1ppm? 100bpm?


RE: Pomiar czasu za pomocą Arduino - Mick_SQ6IYV - 07-09-2018

1. es2 - W projekcie 1 dokładność na poziomie 0,01 sekundy. W drugim projekcie dokładność na poziomie 1 sekundy. To będą najmniejsze wartości, jakie będą mierzone i wyświetlane.

2. Kaczkat - Przyznam się "bez bicia", że nie do końca je czytałem. Może też dla tego, że mam pomysł jak poprawić w pracy jedną rzecz za pomocą Arduino. Chciałem więc od razu zająć się tym projektem. Zajrzałem do książek trochę pobieżnie, gdyż zabrakło mi w indeksie i spisie treści nie widziałem konkretnego hasła "POMIAR CZASU" lub czegoś podobnego. Mam następujące książki:

1. BOXALL JOHN - Arduino. 65 praktycznych projektow
2. MASSIMO BANZI - Wprowadzenie do Arduino
3. Tytułu i autora nie pamiętam... Wink


RE: Pomiar czasu za pomocą Arduino - Robson Kerman - 07-09-2018

(07-09-2018, 15:24)es2 napisał(a): Rozdzielczość administratorze, rozdzielczość.

Moderatorze, a nie administratorze.
Ja tu tylko pilnuję, abyście nie używali mowy nienawiści, i nie dyskutowali nie na temat.

A co się tyczy tematu, to pewnie przejęzyczenie, pisałem w pracy pod presją opierniczu od szefostwa.
Faktycznie chodziło o rozdzielczość. Przepraszam, że wprowadzam w błąd.

Możesz kolego Mick_SQ6IYV napisać, między jakimi zdarzeniami ma być mierzony czas?
Wewnętrznymi, czyli w programie, czy może coś z zewnątrz będzie informowało sprzęt, na przykład zmianą poziomu na pinie?