Moduł hc sr04 to prosty czujnik ultradźwiękowy, który zamienia odbicie fali dźwiękowej na pomiar odległości. Sprawdza się w robotyce amatorskiej, edukacji i prostych systemach automatyki, bo daje szybki odczyt bez kontaktu z obiektem. Poniżej pokazuję, jak działa, jak go podłączyć, co realnie mierzy dobrze, a gdzie zaczynają się jego ograniczenia.
Najważniejsze rzeczy, które warto wiedzieć przed pierwszym pomiarem
- Zakres pracy klasycznego modułu to zwykle około 2 cm do 400 cm.
- Pomiar opiera się na czasie echa, a nie na „widzeniu” obiektu, więc kształt i materiał celu mają znaczenie.
- Do poprawnej pracy potrzebujesz impulsu TRIG o długości co najmniej 10 µs i wspólnej masy z mikrokontrolerem.
- Najłatwiej działa na płaskich, twardych powierzchniach ustawionych możliwie prostopadle do sensora.
- Temperatura wpływa na wynik, bo prędkość dźwięku w powietrzu nie jest stała.
- To dobry wybór do nauki i prostych projektów, ale nie zawsze do precyzyjnych zastosowań przemysłowych.
Jak działa czujnik ultradźwiękowy
W środku tego rozwiązania nie ma magii, tylko bardzo praktyczna zasada: czujnik wysyła krótki pakiet ultradźwięków o częstotliwości około 40 kHz, a potem czeka na echo wracające od przeszkody. Jeśli impuls wróci, układ wystawia na pinie ECHO sygnał o czasie trwania proporcjonalnym do drogi, jaką fala przebyła tam i z powrotem. To właśnie czas trwania echa jest podstawą całego pomiaru.
W typowym cyklu wyzwolenia pin TRIG musi dostać stan wysoki przez co najmniej 10 µs. Następnie moduł wysyła serię ultradźwięków i mierzy czas powrotu odbicia. Odległość liczy się ze wzoru: odległość = czas echa × prędkość dźwięku / 2. Dzielę przez dwa, bo fala pokonuje drogę do obiektu i z powrotem.
W praktyce przy temperaturze pokojowej prędkość dźwięku w powietrzu wynosi około 343 m/s. To wystarcza do prostych zastosowań, ale jeśli robisz dokładniejszy pomiar, temperatura zaczyna mieć znaczenie. W cieplejszym pomieszczeniu wynik będzie minimalnie inny niż w chłodnym garażu czy na zewnątrz. Kiedy rozumiesz już samą zasadę działania, łatwiej ocenić, jak sensownie podłączyć moduł do konkretnej płytki.

Jak go podłączyć do mikrokontrolera
Najprostsze połączenie jest bardzo krótkie: VCC, Trig, Echo i GND. W klasycznej wersji moduł zasila się z 5 V, a masa musi być wspólna z mikrokontrolerem. To ważne, bo bez wspólnego odniesienia napięć sygnały po prostu nie będą interpretowane poprawnie.
| Pin | Rola | Co trzeba sprawdzić |
|---|---|---|
| VCC | Zasilanie modułu | Najczęściej 5 V, ale przy zakupie warto sprawdzić konkretną wersję płytki |
| Trig | Wejście wyzwalające | Impuls dodatni minimum 10 µs |
| Echo | Wyjście czasu echa | Może wymagać dopasowania poziomów logicznych przy płytkach 3,3 V |
| GND | Masa | Musi być połączona ze wspólną masą układu |
Jeśli używasz Arduino Uno, podłączenie jest zwykle bezproblemowe. Przy ESP32, Raspberry Pi Pico albo innych płytkach 3,3 V trzeba uważać na pin Echo, bo w wielu wersjach modułu wyjście ma poziom zgodny z logiką 5 V. W takiej sytuacji dzielnik napięcia albo konwerter poziomów nie jest dodatkiem „na wszelki wypadek”, tylko realnym zabezpieczeniem wejścia mikrokontrolera.
Ja przy pierwszym uruchomieniu robię test bardzo zachowawczo: najpierw sama masa i zasilanie, potem prosty program wyzwalający pomiar co kilkadziesiąt milisekund, a dopiero potem dokładam resztę logiki projektu. Gdy połączenia są już pewne, pozostaje najważniejsze: poprawnie przeliczyć impuls ECHO na dystans.
Jak odczytać wynik i przeliczyć go na centymetry
Najwygodniejsze jest liczenie w mikrosekundach, bo mikrokontrolery odczytują taki impuls bardzo dokładnie. Dla orientacji można przyjąć prosty przelicznik: około 58 µs na 1 cm odległości dla drogi tam i z powrotem. Dzięki temu wynik z pinu ECHO da się przetworzyć bez skomplikowanej matematyki.
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
duration = pulseIn(ECHO, HIGH);
distanceCm = duration / 58.0;Taki kod działa jako punkt wyjścia, ale nie traktowałbym go jako gotowca do każdego projektu. Jeśli chcesz większej stabilności, dobrze jest uśrednić kilka pomiarów, odrzucić skrajne wartości i dodać niewielki margines bezpieczeństwa. W robotach mobilnych to szczególnie ważne, bo pojedynczy błędny odczyt potrafi wywołać niepotrzebny skręt albo zatrzymanie.
Warto też pamiętać o temperaturze. W chłodniejszym otoczeniu fala dźwiękowa porusza się wolniej, więc bez korekty odczyt może się lekko rozjechać. Przy prostych projektach błąd bywa mały, ale przy pomiarach poziomu cieczy albo w dłuższym zakresie zaczyna mieć znaczenie. Z punktu widzenia zastosowań to prowadzi do pytania: gdzie ten sensor naprawdę błyszczy, a gdzie tylko „działa jakoś”.
Gdzie ten czujnik sprawdza się najlepiej
HC-SR04 lubię za to, że daje szybkie rezultaty w projektach, w których nie potrzebuję bardzo małej rozdzielczości, ale chcę prostego i taniego pomiaru bezkontaktowego. Najbardziej sensowne zastosowania to roboty omijające przeszkody, proste mierniki poziomu, edukacyjne stanowiska z mikrokontrolerem i demonstracje zasady działania sonaru. To nie jest czujnik „do wszystkiego”, ale w swoim zakresie potrafi być zaskakująco użyteczny.
| Zastosowanie | Dlaczego działa dobrze | Na co uważać |
|---|---|---|
| Robot mobilny | Szybko wykrywa przeszkodę na wprost | Słabo radzi sobie z ukośnymi i miękkimi powierzchniami |
| Pomiar poziomu cieczy | Nie wymaga kontaktu z medium | Para, piana i geometria zbiornika mogą zakłócać wynik |
| Parkingowy asystent DIY | Dobrze pokazuje zmianę dystansu w czasie | Potrzebuje stabilnego montażu i sensownego filtrowania odczytu |
| Laboratorium edukacyjne | Łatwo wyjaśnia zasadę pomiaru czasu przelotu fali | Bez kalibracji wyniki mogą wyglądać lepiej, niż są w praktyce |
W projektach edukacyjnych największą zaletą jest to, że efekt widać od razu. Uczeń albo początkujący hobbysta szybko rozumie związek między impulsem TRIG, czasem ECHO i realną odległością. Z kolei w zastosowaniach praktycznych najważniejsze staje się pytanie o ograniczenia, bo to one zwykle decydują o tym, czy pomiar będzie stabilny.
Najczęstsze błędy i ograniczenia
Najwięcej problemów nie wynika z samego modułu, tylko z tego, jak jest używany. Po pierwsze, czujnik ma martwą strefę blisko obiektu i zwykle zaczyna sensownie pracować dopiero od około 2 cm. Po drugie, jego zasięg nie jest nieograniczony, a praktyczna górna granica to około 4 m. Po trzecie, kąt pomiaru jest stosunkowo wąski, więc obiekt ustawiony pod ostrym kątem może „zniknąć” z widzenia sensora.
- Zbyt miękka powierzchnia pochłania część fali i osłabia echo.
- Obiekt ustawiony ukośnie odbija falę poza tor powrotu, więc odczyt staje się niestabilny.
- Zbyt częste wyzwalanie może nakładać kolejne pomiary na poprzednie echo.
- Brak filtra zasilania potrafi wprowadzić przypadkowe skoki wyniku.
- Kolizja kilku sensorów w jednym układzie powoduje wzajemne zakłócanie się impulsów.
- Nieprawidłowy poziom logiczny na wejściu mikrokontrolera bywa źródłem uszkodzeń przy płytkach 3,3 V.
Warto też mieć świadomość, że ultradźwięki nie „widzą” otoczenia tak jak kamera. Czujnik nie ocenia koloru, ale mocno zależy od kształtu i materiału powierzchni. Gładka, twarda płyta daje zwykle bardzo dobry wynik, a miękka tkanina, zaokrąglony element albo mały przedmiot mogą już sprawić kłopot. Z tego powodu dobrze jest testować projekt na realnym celu, a nie tylko na kartonowym pudełku z biurka.
Jeżeli potrzebujesz pomiaru bardziej przewidywalnego w krótkim dystansie, albo masz ograniczone miejsce na montaż, często sensowniejszy okazuje się inny typ sensora. To prowadzi do prostego porównania, które oszczędza sporo błędnych decyzji zakupowych.
Kiedy lepiej wybrać inny czujnik niż HC-SR04
Nie zawsze ultradźwięki są najlepszym wyborem, nawet jeśli sam moduł jest tani i łatwy w użyciu. Gdy liczy się bardzo mała odległość, kompaktowe wymiary albo większa odporność na geometrię celu, często lepiej sprawdzają się czujniki ToF lub wybrane sensory podczerwieni. Różnica nie polega tylko na cenie, ale na tym, jakiego błędu możesz się spodziewać i z czym projekt ma sobie poradzić.
| Typ czujnika | Mocne strony | Słabe strony | Najlepsze zastosowanie |
|---|---|---|---|
| HC-SR04 | Tani, prosty, bezkontaktowy, dobry do nauki | Wrażliwy na kąt, materiał i zakłócenia akustyczne | Roboty hobby, poziom cieczy, podstawowe pomiary odległości |
| IR | Szybki, tani, często bardzo kompaktowy | Zależy od koloru, odbicia i oświetlenia | Krótki zasięg, wykrywanie bliskich przeszkód |
| ToF | Dobra precyzja, małe rozmiary, wygodna integracja | Zwykle droższy i bardziej „wrażliwy” na jakość modułu | Precyzyjny pomiar bliski i średni w nowoczesnych projektach |
Ja najczęściej wybieram ultradźwięki wtedy, gdy projekt ma być czytelny, tani i łatwy do zademonstrowania. Gdy potrzebuję czegoś bardziej „produkcyjnego”, zwłaszcza przy małych odległościach, szybciej patrzę w stronę ToF. Taki podział nie jest modny ani marketingowy, ale po prostu praktyczny. Jeśli chcesz zbudować stabilny prototyp, najwięcej da ci dobre pierwsze uruchomienie i świadome ograniczenia, a nie sama nazwa modułu.
Co warto zapamiętać przed pierwszym uruchomieniem
Najlepszy start to prosty test na płaskim, twardym obiekcie ustawionym prostopadle do sensora, najlepiej w odległości od kilkunastu do kilkudziesięciu centymetrów. Wtedy najłatwiej odróżnić błąd montażu od ograniczeń samego pomiaru. Jeśli wynik skacze, najpierw sprawdzam zasilanie, masę, czas wyzwalania i poziom logiczny na Echo, dopiero później podejrzewam sam czujnik.
W praktyce HC-SR04 najlepiej traktować jako solidne narzędzie do prostych i średnio wymagających zadań, a nie jako precyzyjny miernik laboratoryjny. Daje bardzo dobry stosunek ceny do użyteczności, o ile projekt uwzględnia jego martwą strefę, kąt pomiaru i wpływ temperatury. Jeśli od początku budujesz układ z myślą o tych ograniczeniach, oszczędzasz sobie wielu godzin niepotrzebnego debugowania.
Najbardziej sensowny workflow jest prosty: uruchom sensor na stole, porównaj kilka odczytów z rzeczywistą miarką, a potem dopiero montuj go w robocie, zbiorniku albo obudowie. To właśnie ten etap najczęściej przesądza o tym, czy pomiar będzie tylko działał, czy będzie działał przewidywalnie.