Spisu treści:

Prosty, praktyczny stoper Arduino: 4 kroki
Prosty, praktyczny stoper Arduino: 4 kroki

Wideo: Prosty, praktyczny stoper Arduino: 4 kroki

Wideo: Prosty, praktyczny stoper Arduino: 4 kroki
Wideo: 50 САМЫХ ИННОВАЦИОННЫХ ЛИЧНЫХ ТРАНСПОРТНЫХ СРЕДСТВ 2021–2022 гг. 2024, Wrzesień
Anonim
Prosty, praktyczny stoper Arduino
Prosty, praktyczny stoper Arduino

Wyszukaj w Internecie stoper Arduino. Prawdopodobnie właśnie to zrobiłeś, jeśli tu jesteś. Z własnego doświadczenia mogę powiedzieć, że każdy stoper w Internecie jest albo zbyt skomplikowany (w kodzie, dla początkujących), albo jest zbyt uproszczony i niepraktyczny, jak te, które po prostu odliczają sekundy bez resetowania.

Też tak myślisz, co? Zastanów się. Zrobiłem to, a co więcej, bezpośrednio pobieram dane z funkcji millis() – niekończącej się linii liczb (do 49 dni, lub cokolwiek). Najlepsza część? To tylko jedna linijka.

Zerowanie to rzeczywista trudna część stopera. Dla średniozaawansowanych, programistów, jeśli jeszcze tego nie zrobiłeś, spróbuj zrobić to sam, z sekundami, minutami i godzinami razem. Dostaniesz to, o czym mówię.

Dla początkujących, czytaj dalej i rozkoszuj się geniuszem mojego umysłu.

Żartuję, ale rozwiązanie, które wymyśliłem, jest całkiem zgrabne. Oto, co to jest:

Krok 1: Rozwiązanie

Rozwiązanie
Rozwiązanie

Więc problem się resetuje. To, czego chcemy, to ciągły, powtarzający się cykl liczb, z niekończącego się wyjścia liczb sekwencyjnych (millis() - zasadniczo liczy milisekundy, a właściwie 1,024 milisekundy, ale cokolwiek).

Pierwszą rzeczą, która przychodzi na myśl, jest użycie różnicy, jak time1 -time2 i opóźnienia. Zapomnij, że. Do uruchomienia potrzeba co najmniej sześciu linii kodu i instrukcji if.

Oto jak to zrobić. Mamy limit (59). Chcemy, aby wszystko od 0 do 59 lat się powtarzało w kółko. Jak?

Co jeśli… wzięliśmy resztę… funkcji milis podzieloną przez 59…. Bingo!

A więc powinno być tak:

(60 [jako wartość początkowa, ponieważ limit wynosi 59] + milis() / 1000 [1000 milisekund to sekunda]) % 60

Ok, pozwól mi wyjaśnić. (%) lub moduł jest w zasadzie operatorem takim jak (+), który znajduje resztę. Jak 9 % 2 = 1.

Więc:

  • reszta z (60 + 0) % 60 = 0
  • reszta z (60 + 1) % 60 =1
  • reszta z (60 + 58) % 60 = 58
  • reszta z (60 + 59) % 60 = 59
  • reszta z (60 + 60) % 60 = 60
  • reszta z (60 + 61) % 60 = 1

Widzieć!

Teraz za części.

Krok 2: Części

Części
Części

Wcale niewiele

  1. Dowolny arduino
  2. Dowolny wyświetlacz (użyłem 0.96-calowego OLED, ale możesz użyć wszystkiego, co masz, po prostu upewnij się, że umieściłeś odpowiednie zmienne w funkcjach wyświetlania swojego wyświetlacza.)

Otóż to.

Krok 3: Kodeks

Proszę bardzo. Jest dość przejrzyście skomentowany, więc nie powinno być problemów. Biblioteki i init dla 0.96 OLED są w kodzie. Zastąp go własnym wyświetlaczem, jeśli jest inny.

// Biblioteki OLED 0,96"

#włączać

#włączać

#włączać

#włączać

// Początek OLED 0,96"

#define OLED_RESET 4

Wyświetlacz Adafruit_SSD1306 (OLED_RESET);

int sekund;

międzynarodowe minuty;

międzynarodowe godziny;

pusta konfiguracja () {

// Trochę więcej 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay(); display.setTextSize(2); display.setTextColor (BIAŁY); }

pusta pętla () {

sekundy = (60 + mili() / 1000) % 60;

minuty = (60 + mili() / 60000) % 60; godziny = (25 + milis() / 3600000) % 25;

display.clearDisplay();

display.setCursor(0, 22); // drukuj liczbę godzin od zresetowania display.print(hours); display.print("h:");

// wypisz liczbę minut od zresetowania

display.print(minuty);

display.print("m:");

// drukuj liczbę sekund od zresetowania display.print(sekundy); display.print("s");

display.setCursor(0, 0);

display.print("Stoper"); display.drawLine(0, 18, 128, 18, BIAŁY); display.display();

}

Krok 4: Pl zakończenie…

Pl Zakończenie…
Pl Zakończenie…

Więc to jest to! Teraz idź, zrób z nim, co chcesz. Czas na jajka lub przejmij swoją okolicę.

Pozdrawiam, Aarush

Zalecana: