Skocz do zawartości
SebaSaper

Funkcja milis

Pomocna odpowiedź

Witam zwracam się z proźbą to bardziej zaawansowanych w programowaniu Arduino, mugl by mi ktoś wytłumaczyć jak za pomocą funkcji milis zmierzyć czas i wyświetlić na LCD  .

Zbudowałem w oparciu o Arduino tester ogniw li-ion i nie wiem za bardzo jak za pomocą tej funkcji zmierzyć czas od rozpoczęcia testu (włączenia tranzystora)  do momętu gdzie tester wyłącza tranzystor  max czas testu to 3h .

Chciał bym aby czas był wyświetlany na bieżaco (sek.min.h)  i aktualizowany co sekundę, za każdą poradę będę wdzieczny.

Z góry dziękuję.

Edytowano przez SebaSaper

Udostępnij ten post


Link to post
Share on other sites

A potrafisz wyświetlić czas od momentu włączenia Arduino (czyli wartość millis() w godzinach, minutach i sekundach)? Jeśli nie, to na czym utknąłeś?

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
unsigned long momentOfBegining = 0;

void loop(){
  if(jakis warunek rozpoczynajacy prace){
    momentOfBegining = millis();
  }
  if(!momentOfBegining && millis() - momentOfBegining >= 1000){
    momentOfBegining = millis();
    odswiezLCD();
  }
}

 

Edytowano przez rziomber

Udostępnij ten post


Link to post
Share on other sites
23 minuty temu, SebaSaper napisał:

za każdą poradę będę wdzieczny.

Wystarczy użyć operacji dzielenia i reszty (modulo).

Udostępnij ten post


Link to post
Share on other sites

Pytanie może ma niskim poziomie ale,czy w tym kodzie jest zawarta procedura w kturej jeśli warunek nie jest spełniony czas przestaje być odliczany i jest tylko wyświetlany , jeśli mugl byś to wklej mi część kodu która by za to odpowiadała bo chciał bym zrozumieć jak to działa a nie tylko kopiuj wklej

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@rziomber - kolega przed chwilą wyjaśnił że chyba nie wie co zrobić w funkcji odswiezLCD() 😉

Na takie wyświetlanie jest sposobów mnóstwo i każdy będzie chwalił swój, zaczniemy więc od jednego:
 

int sekundy = millisekundy / 1000; // wiadomo czemu
int minuty = sekundy / 60;  // chyba też wiadomo czemu
sekundy = sekundy % 60; // czyli reszta z pełnych minut
int godziny = minuty / 60; // jak wyżej
minuty = minuty % 60;

Czy potrafisz wyświetlić czas mając już obliczone godzin, minuty i sekundy?

Tak przy okazji: ponieważ mamy być grzeczni i zachowywać się zgodnie z Polityką Przyjaznego Forum miło by było, aby ktoś zgłaszający się pierwszy raz z pytaniem również zgodnie z ową polityką się zachował i raczył napisać parę słów o sobie, bo nie wiadomo jak mamy odpowiedzieć. Inaczej odpowiem programiście PHP z paroletnim stażem, który postanowił zabrać się za Arduino a inaczej komuś, kto nie bardzo wie z której strony toto się włącza. Więc jak będzie?

po edycji

W pierwszym poście nic nie wspominałeś o przerwaniu odliczania, może więc uściślij swoje wymagania. Najpierw chcesz porad, teraz kodu, za chwilę będzie gotowiec?

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Przepraszam 

Mam na imię Sebastian mam 22lata  Arduino mam doczynienia około 6miesięcy podstawy ogarniam , jedynie funkcją milis to dla mnie czarna magia bo nie korzystałem z niej jeszcze .

Teraz już wiem jak się za to zabrać i dziękuję za wyrozumiałość 🙂

Jeśli mugl byś podać jakiś przykład jak to wyświetlić to by było super.

Edytowano przez SebaSaper

Udostępnij ten post


Link to post
Share on other sites

No to na podstawie tego cośmy tu napisali (i oczywiście kursu Arduino) powinieneś sobie taki kawałek kodu stworzyć 🙂

 

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij, aby zacząć pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...