Witam wszystkich.
Dzisiaj postaram się opisać Wam czujnik HC-SR04 zwany też ultradźwiękowym miernikiem odległości. Za pomocą tego czujnika możemy dokonywać „bezdotykowego” pomiaru odległości pomiędzy czujnikiem a przeszkodą. Zasilanie czujnika to 5V, pobór prądu – możemy wyróżnić dwa stany czujnika: bierny – do 2mA – czujnik czeka na sygnał do wykonania pomiaru, aktywny – 15mA – czujnik dokonuje pomiaru odległości, dokładność pomiaru 0,3cm, kąt pomiaru 30°. Częstotliwość pracy – 40kHz, minimalny zasięg 2cm, maksymalny zasięg 400cm. Wymiary czujnika: 45x20x15mm należy jednak wziąć pod uwagę, że do płytki czujnika mamy dolutowaną czteropinową listwę goldpin, więc wymiary razem z nią to 45x26x18mm.
Pomiar prądu wykonany przeze mnie to 3,5mA w stanie biernym i 6,5mA w stanie aktywnym.

Ceny czujnika z wysyłką zaczynają się na polskich portalach aukcyjnych od ok. 7,5zł, zaś na chińskich stronach możemy zakupić ten czujnik w cenie od ok. $0,75. Do czujnika można zakupić różnego rodzaju obudowy czy też uchwyty.
Czujnik posiada cztery wyprowadzenia: VCC – zasilanie, Trig – sygnał wejściowy rozpoczynający pomiaru, Echo – jest to wyjście, na którym pojawia się sygnał prostokątny, którego czas trwania zależy od zmierzonej odległości, Gnd – masa.
Zasada działania czujnika. Na wejście Trig podajemy pojedynczy sygnał prostokątny o czasie trwania nie krótszym niż 10uS, po czym następuje wysłanie przez czujnik 8 krótkich fal ultradźwiękowych o częstotliwości 40kHz, które napotykając na przeszkodę, odbijają się od niej i wracają do czujnika. Kiedy pomiar zostanie dokonany, na wyjściu Echo pojawia się pojedynczy sygnał prostokątny, którego czas trwania zależy od odległości pomiędzy czujnikiem a przeszkodą. W dokumentacji możemy znaleźć informację, że odległość między czujnikiem a przeszkodą można wyliczyć z zależności:
S[cm]=t[us]/58
Dla wyznaczenia odległości w calach otrzymany czas należy podzielić przez 148.
Producent zaleca, aby powierzchnia, od której będą odbijały się fale dźwiękowe, miała co najmniej 0,5m2 i aby była to gładka powierzchnia, w przeciwnym razie może mieć to wpływ na wynik pomiaru. W dokumentacji możemy znaleźć również zalecenie, by do czujnika jako pierwsza została podłączona masa przed VCC. Jeżeli po podaniu sygnału na wejście Trig, obiekt będzie znajdował się poza zasięgiem czujnika, to na wyjściu Echo pojawi się sygnał o długości 38ms.
Poniżej przedstawiam pomiary kilku odległości:
10cm:
Czas trwania sygnału: 0,575ms=575us, wynik 575/58=9,91cm
20cm:
Czas trwania sygnału: 1,173ms=1173us, wynik 1173/58=20,22cm
40cm:
Czas trwania sygnału: 2,389ms=2389us, wynik 2389/58=41,18cm
50cm:
Czas trwania sygnału: 2,9ms=2900us, wynik 2900/58=50cm
198cm:
Czas trwania sygnału: 11,58ms=11580us, wynik 11580/58=199,65cm
315cm:
Czas trwania sygnału: 18,4ms=18400us, wynik 18400/58=317,24cm
Należy wziąć pod uwagę, że te pomiary były dokonywane w domu, a nie w żadnym laboratorium, więc mogą być pomyłki w ustawieniu przeszkody w danej odległości od czujnika, a co ważne - czujnik mógł być nieustawiony pod kątem 90° do przeszkody.
Chodziło tu raczej o sprawdzenie działania czujnika, a nie o badanie jego dokładności zadeklarowanej przez producenta.
Z ciekawości postanowiłem sprawdzić, co się stanie, gdy na wejście Trig zamiast pojedynczego sygnału podamy przebieg prostokątny o częstotliwości 50kHz i wypełnieniu 50%, czyli nasz stan wysoki będzie miał 10us.
Wygląda to tak:
Widać, że na wyjściu Echo pojawia nam się nie pojedynczy sygnał, a ciąg sygnałów, gdzie czas trwania stanu wysokiego w tym przypadku to 11,53ms, co daje nam odległość 198,79cm przy odległości czujnika od przeszkody 198cm.
Jak widać - można by było w ten sposób dokonywać ciągłego pomiaru odległości.
Postanowiłem sprawdzić, co się stanie, gdy czasy na wejściu Trig zmienimy na krótszy niż zaleca producent lub na jeszcze dłuższe, ale przy podawaniu tam pojedynczego sygnału prostokątnego na wejściu.
Czas na wejściu 5us:
Czas na wyjściu 11,51ms co daje nam 198,44cm
Czas na wejściu 20us:
Czas na wyjściu 11,53 co daje nam 198,79cm
Czas na wejściu 50us:
Czas na wyjściu 11,51ms co daje nam 198,44cm
Czas na wejściu 100us:
Czas na wyjściu 11,58 co daje nam 199,65cm
Czas na wejściu 1ms:
Czas na wyjściu 11,56 co daje nam 199,31cm
Tutaj przy tej samej odległości podanie sygnału prostokątnego o częstotliwości 5kHz i wypełnieniu 50%.
Wynik to 11,56ms co daje nam 199,31cm
Jak widać - zmiana czasu trwania sygnału Trig czy też podanie tam przebiegu prostokątnego nie ma raczej wpływu na zmianę wyniku pomiaru badanej odległości, choć producent w dokumentacji zaleca podawać sygnał o długości nie mniejszej niż 10us.
Muszę przyznać, że wcześniej myślałem, że ten czujnik jest trudniejszy w obsłudze, ale jak widać - jest on dość prosty i dosyć łatwo można za jego pomocą dokonywać pomiarów odległości.
W sieci można znaleźć przykłady użycia tego czujnika z Arduino czy też programy w C lub Bascom.
Do wykonania pomiarów wykorzystałem 8-kanałowy analizator Saleae.
W załączniku dokumentacja czujnika.
Dzisiaj postaram się opisać Wam czujnik HC-SR04 zwany też ultradźwiękowym miernikiem odległości. Za pomocą tego czujnika możemy dokonywać „bezdotykowego” pomiaru odległości pomiędzy czujnikiem a przeszkodą. Zasilanie czujnika to 5V, pobór prądu – możemy wyróżnić dwa stany czujnika: bierny – do 2mA – czujnik czeka na sygnał do wykonania pomiaru, aktywny – 15mA – czujnik dokonuje pomiaru odległości, dokładność pomiaru 0,3cm, kąt pomiaru 30°. Częstotliwość pracy – 40kHz, minimalny zasięg 2cm, maksymalny zasięg 400cm. Wymiary czujnika: 45x20x15mm należy jednak wziąć pod uwagę, że do płytki czujnika mamy dolutowaną czteropinową listwę goldpin, więc wymiary razem z nią to 45x26x18mm.
Pomiar prądu wykonany przeze mnie to 3,5mA w stanie biernym i 6,5mA w stanie aktywnym.
Ceny czujnika z wysyłką zaczynają się na polskich portalach aukcyjnych od ok. 7,5zł, zaś na chińskich stronach możemy zakupić ten czujnik w cenie od ok. $0,75. Do czujnika można zakupić różnego rodzaju obudowy czy też uchwyty.
Czujnik posiada cztery wyprowadzenia: VCC – zasilanie, Trig – sygnał wejściowy rozpoczynający pomiaru, Echo – jest to wyjście, na którym pojawia się sygnał prostokątny, którego czas trwania zależy od zmierzonej odległości, Gnd – masa.
Zasada działania czujnika. Na wejście Trig podajemy pojedynczy sygnał prostokątny o czasie trwania nie krótszym niż 10uS, po czym następuje wysłanie przez czujnik 8 krótkich fal ultradźwiękowych o częstotliwości 40kHz, które napotykając na przeszkodę, odbijają się od niej i wracają do czujnika. Kiedy pomiar zostanie dokonany, na wyjściu Echo pojawia się pojedynczy sygnał prostokątny, którego czas trwania zależy od odległości pomiędzy czujnikiem a przeszkodą. W dokumentacji możemy znaleźć informację, że odległość między czujnikiem a przeszkodą można wyliczyć z zależności:
S[cm]=t[us]/58
Dla wyznaczenia odległości w calach otrzymany czas należy podzielić przez 148.
Producent zaleca, aby powierzchnia, od której będą odbijały się fale dźwiękowe, miała co najmniej 0,5m2 i aby była to gładka powierzchnia, w przeciwnym razie może mieć to wpływ na wynik pomiaru. W dokumentacji możemy znaleźć również zalecenie, by do czujnika jako pierwsza została podłączona masa przed VCC. Jeżeli po podaniu sygnału na wejście Trig, obiekt będzie znajdował się poza zasięgiem czujnika, to na wyjściu Echo pojawi się sygnał o długości 38ms.
Poniżej przedstawiam pomiary kilku odległości:
10cm:
Czas trwania sygnału: 0,575ms=575us, wynik 575/58=9,91cm
20cm:
Czas trwania sygnału: 1,173ms=1173us, wynik 1173/58=20,22cm
40cm:
Czas trwania sygnału: 2,389ms=2389us, wynik 2389/58=41,18cm
50cm:
Czas trwania sygnału: 2,9ms=2900us, wynik 2900/58=50cm
198cm:
Czas trwania sygnału: 11,58ms=11580us, wynik 11580/58=199,65cm
315cm:
Czas trwania sygnału: 18,4ms=18400us, wynik 18400/58=317,24cm
Należy wziąć pod uwagę, że te pomiary były dokonywane w domu, a nie w żadnym laboratorium, więc mogą być pomyłki w ustawieniu przeszkody w danej odległości od czujnika, a co ważne - czujnik mógł być nieustawiony pod kątem 90° do przeszkody.
Chodziło tu raczej o sprawdzenie działania czujnika, a nie o badanie jego dokładności zadeklarowanej przez producenta.
Z ciekawości postanowiłem sprawdzić, co się stanie, gdy na wejście Trig zamiast pojedynczego sygnału podamy przebieg prostokątny o częstotliwości 50kHz i wypełnieniu 50%, czyli nasz stan wysoki będzie miał 10us.
Wygląda to tak:
Widać, że na wyjściu Echo pojawia nam się nie pojedynczy sygnał, a ciąg sygnałów, gdzie czas trwania stanu wysokiego w tym przypadku to 11,53ms, co daje nam odległość 198,79cm przy odległości czujnika od przeszkody 198cm.
Jak widać - można by było w ten sposób dokonywać ciągłego pomiaru odległości.
Postanowiłem sprawdzić, co się stanie, gdy czasy na wejściu Trig zmienimy na krótszy niż zaleca producent lub na jeszcze dłuższe, ale przy podawaniu tam pojedynczego sygnału prostokątnego na wejściu.
Czas na wejściu 5us:
Czas na wyjściu 11,51ms co daje nam 198,44cm
Czas na wejściu 20us:
Czas na wyjściu 11,53 co daje nam 198,79cm
Czas na wejściu 50us:
Czas na wyjściu 11,51ms co daje nam 198,44cm
Czas na wejściu 100us:
Czas na wyjściu 11,58 co daje nam 199,65cm
Czas na wejściu 1ms:
Czas na wyjściu 11,56 co daje nam 199,31cm
Tutaj przy tej samej odległości podanie sygnału prostokątnego o częstotliwości 5kHz i wypełnieniu 50%.
Wynik to 11,56ms co daje nam 199,31cm
Jak widać - zmiana czasu trwania sygnału Trig czy też podanie tam przebiegu prostokątnego nie ma raczej wpływu na zmianę wyniku pomiaru badanej odległości, choć producent w dokumentacji zaleca podawać sygnał o długości nie mniejszej niż 10us.
Muszę przyznać, że wcześniej myślałem, że ten czujnik jest trudniejszy w obsłudze, ale jak widać - jest on dość prosty i dosyć łatwo można za jego pomocą dokonywać pomiarów odległości.
W sieci można znaleźć przykłady użycia tego czujnika z Arduino czy też programy w C lub Bascom.
Do wykonania pomiarów wykorzystałem 8-kanałowy analizator Saleae.
W załączniku dokumentacja czujnika.
Fajne? Ranking DIY
