(07-10-2018, 20:13)kaczakat napisał(a): Użyj funkcji millis() lub micros() do zarządzania upływającym czasem.Do millis() daleka droga. Co da millis() jak wyjście przekaźnika ustawia na input? W pewnych warunkach da się w ten sposób realizować funkcje wyjścia ale wętpię aby autor wątku świadomie użył input do sterowania wyjściem.
Niech najpierw zrobi to z delay. Jak upora się ze sterowaniem przekaźnika, to w "pulseIn" nie ma timeout. Czy to rozsądne? Samo użycie "pulseIn" do pomiaru czasu nie jest dobrym pomysłem ale nie dać timeout? Pomiar czau, a z HC-SR04 sa to bardzo długie czasy, powinien być zrealizowany przez wejście przechwytujące timera. Wtedy i millis() ma sens bo co ono da jak program będzie wisiał w nieskończoność na "pulseIn"?
Właśnie przez "pulseIn" i inne tego typu "hocki klocki" jak programowy uart, spi czy i2c, Arduino nie nadaje się do niczego poważnego. Para idzie w gwizdek, zamiast używać sprzętu jakieś programowe protezy blokujące działanie programu.