Skocz do zawartości

Problem z czujnikiem ultradźwiękowym Sr04


epicwin

Pomocna odpowiedź

cześć, zakupiłem czujnik ultradźwiękowy i mam problem.

Polega on na tym że chwilę po włożeniu do płytki stykowej działa wszystko poprawnie. Wyświetla taką odległość jaka być powinna. Natomiast przy większej odległości lub gdy do układu nie powróci sygnał trig, wówczas echo cały czas jest w stanie wysokim i ogległość wskazuje 0.

Jak myślicie czym to jest spowodowane?

Dzięki za wszelką pomoc.

Link do komentarza
Share on other sites

To że pokazywany jest wynik "0" spowodowane jest zbyt prostym programem, który nie umie poradzić sobie z sytuacją awaryjną/wyjątkową. Natomiast dużo ciekawsze jest dlaczego wyjście czujnika nie powraca do zera. Jak to badałeś? Możesz pokazać obraz z oscyloskopu? Czy sytuacja jest permanentna, tzn. raz "zgłupiały" czujnik zwisa aż do wyłączenia mu zasilania czy jednak kiedyś wyjście powraca do zera i można rozpocząć nowy pomiar? A jeżeli powraca to po jakim czasie? Mierzyłeś to? Jaki masz czujnik? Dokumentacja typowego HC-SR04 mówi o maksymalnym czasie 38ms, potem wyjście powinno opaść do 0.

Link do komentarza
Share on other sites

Racja, że 0 jest spowodowane prostym programem. Po prostu sprawdzałem zasadę działania. Niestety nie mam możliwości badania oscyloskopu. Ale zrobiłem to za pomocą dwóch diod. Gdzie jedna była przy podłączona do trig, druga do echo. W normalnym stanie, kiedy działa, najpierw zapala się dioda od trig, następnie od echo. Jednak kiedy sygnał najprawdopodobniej nie wraca (np. szybki ruch czujnika) wówczas wejście echo jest cały czas w stanie wysoki. Potem zasilanie dałem na pin cyfrowy, że gdy odległość jest 0, wtedy wyłączenie zasilania. Jednak również to nie działało bo po powrocie zasilania w taki sposób nadal odległość była 0. Daje radę tylko twardy reset z odłączeniem kabla zasilającego lub wyjęcie czujnika i musi od razu dokonać poprawnego pomiaru, bo gdy tego nie zrobi wówczas trzeba znowu to samo zrobić. Czujnik to HC-SR04.

Link do komentarza
Share on other sites

To, że wymagany jest reset mikrokontrolera, a nie czujnika, sugeruje, że problem leży po stronie kodu, a nie sprzętu. Może olej tę bibliotekę i spróbuj napisać obsługę do niego sam? To nie jest wcale takie trudne, szczególnie, że Arduino daje ci do tego pomocnicze funkcje. A do tego się czegoś nauczysz.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.