07-10-2018, 20:13
Użyj funkcji millis() lub micros() do zarządzania upływającym czasem.
Przykładowo jeśli odpalasz triger to zapisujesz sobie w zmiennej uint32_t jaki jest licznik micros zamiast robić delay. Program dalej tańczy sobie w kółeczko i w każdym sprawdza czy aktualny licznik micros jest większy od zapisanego o 1000. Jeśli tak to wyłączasz triger, tak samo możesz sobie zmierzyć pulse. W podobny sposób używając millis włączasz na określony czas ms światło, buzer. O tym czy odpalić triger, czyli pomiar odległości, też decydujesz Ty, programista, np. co 50ms, co 100ms - tak by było w miarę często, program miał czas na zrobienie wszystkiego w między czasie, ale pewnie 1000 razy na sekundę nie ma sensu. Przykład jest w kursie Arduino na Forbot, tutaj na forum pewnie jest z kilkadziesiąt przykładów.
Przykładowo jeśli odpalasz triger to zapisujesz sobie w zmiennej uint32_t jaki jest licznik micros zamiast robić delay. Program dalej tańczy sobie w kółeczko i w każdym sprawdza czy aktualny licznik micros jest większy od zapisanego o 1000. Jeśli tak to wyłączasz triger, tak samo możesz sobie zmierzyć pulse. W podobny sposób używając millis włączasz na określony czas ms światło, buzer. O tym czy odpalić triger, czyli pomiar odległości, też decydujesz Ty, programista, np. co 50ms, co 100ms - tak by było w miarę często, program miał czas na zrobienie wszystkiego w między czasie, ale pewnie 1000 razy na sekundę nie ma sensu. Przykład jest w kursie Arduino na Forbot, tutaj na forum pewnie jest z kilkadziesiąt przykładów.
Miło być decenianym https://buycoffee.to/kaczakat