23-06-2018, 12:59
Jak działa to super, najważniejsze, że coś wymyśliłeś. Skoro się jednak uczysz to spróbuj zrobić to również ze zmienną S.
Po tylu postach powinieneś już umieć też wrzucać kod w pole CODE (w pełnej edycji ikonka <>).
Mając jedną zmienną S możesz kontrolować zdarzenia mające się wykonywać co określony czas. Np. co 60s zerować zmienną i zwiększać zmienną M, potem to samo dla zmiennej M i zwiększać H. Wszystkie te zmienne można wymnożyć i zmieniać stany w dowolnej chwili dla doby, można też korzystać tylko ze zmiennej godziny. Można sobie ustawiać zmienne "flagi", czyli że wybiła nowa sekunda, nowa godzina, dla rzeczy które mają być wykonane tylko raz w nowej sekundzie, nowej godzinie. Tak samo można dodać potem dni co 24H.
Jak potrzebujesz robić coś co 10ms to oczywiście możesz sobie zacząć zbierać dane w tym warunku w intervale co 10ms - np. szybko zamigać LED co 50ms, odczytać przycisk co 10ms trzy razy by mieć pewność uwzględnienia drgania styków, wiesz kiedy był naciśnięty, kiedy puszczony, jak długo był wciśnięty, itp. Kontrolowanie interwału z dwóch miejsc, czyli przypisanie previous do millis może Ci pomieszać takie planowanie programu.
Teraz nie stosując już delay możesz co wymyślony okres czasu robić cokolwiek, a przy okazji nieważne kiedy naciśniesz jakiś przycisk to od razu program to odczyta. Do mniejszych okresów czasu jest funkcja micros(). Dwie funkcje i zabawa zupełnie się zmienia w Arduino.
Kod:
if(currentMillis - previousMillis >= interval) { //dla 1000
previousMillis = currentMillis;
S++;
}
Mając jedną zmienną S możesz kontrolować zdarzenia mające się wykonywać co określony czas. Np. co 60s zerować zmienną i zwiększać zmienną M, potem to samo dla zmiennej M i zwiększać H. Wszystkie te zmienne można wymnożyć i zmieniać stany w dowolnej chwili dla doby, można też korzystać tylko ze zmiennej godziny. Można sobie ustawiać zmienne "flagi", czyli że wybiła nowa sekunda, nowa godzina, dla rzeczy które mają być wykonane tylko raz w nowej sekundzie, nowej godzinie. Tak samo można dodać potem dni co 24H.
Jak potrzebujesz robić coś co 10ms to oczywiście możesz sobie zacząć zbierać dane w tym warunku w intervale co 10ms - np. szybko zamigać LED co 50ms, odczytać przycisk co 10ms trzy razy by mieć pewność uwzględnienia drgania styków, wiesz kiedy był naciśnięty, kiedy puszczony, jak długo był wciśnięty, itp. Kontrolowanie interwału z dwóch miejsc, czyli przypisanie previous do millis może Ci pomieszać takie planowanie programu.
Teraz nie stosując już delay możesz co wymyślony okres czasu robić cokolwiek, a przy okazji nieważne kiedy naciśniesz jakiś przycisk to od razu program to odczyta. Do mniejszych okresów czasu jest funkcja micros(). Dwie funkcje i zabawa zupełnie się zmienia w Arduino.
Miło być decenianym https://buycoffee.to/kaczakat