HC-SR04 Bascom AVR i …

HC-SR04 Bascom AVR i …
5 (100%) 3 votes

moduł HC-SR04 widok od góryUltradźwiękowy Moduł HC-SR04 zapewnia funkcję pomiaru bezstykowego odległości w od 2cm do 400cm. Dokładność pomiaru w tym zakresie może osiągnąć do 3mm. Tak jego dane precyzuje producent … Ja zaprezentuję jak pogodzić HC-SR04 Bascom AVR i zbudować elektroniczny miernik odległości.

Moduł jest zbudowany z nadajnika oraz odbiornika ultradźwiękowego i obwodu sterowania.

moduł HC-SR04 widok od dołuPowiedzmy, że moduł ten jest uzupełnieniem serii modułów HC-SR501 – wszak znakowanie podobne, dotyczy serii HC-SRxxx.

Podstawowa zasada pracy:
⇒ Na pinie IO trigger ustawić przynajmniej na 10µs stan wysoki, poziom TTL,
⇒ Moduł automatycznie wysyła osiem impulsów o częstotliwości 40kHz, oraz wykrywa czy istnieje powrotny sygnał w postaci odbitych impulsów.
⇒ Jeśli sygnał powraca, ustawiony jest stan wysoki na wyjściu IO, czas trwania stanu wysokiego określa czas trwania powrotu ultradźwięków.

Formuła do obliczeń: µs/58 = cm lub µs/148 = cal, lub długość odcinka mierzonego= czas wysokiego poziomu * prędkość dźwięku(340m/s) / 2;

Producent sugeruje użycie cyklu pomiarowego trwającego ponad 60ms, w celu zapobieżenia wyzwalania w trakcie trwania sygnału echo.

sposób obliczania według innego źródła:
S = F/58,82 gdzie S – odległość w centymetrach, F – szerokość impulsu w mikrosekundach.

Obliczanie odległości omówienie:

odległość = prędkość * czas
Niech D będzie odległością między czujnikiem ultradźwiękowym i celem
Całkowita droga przebyta przez fale ultradźwiękowe jest odcinkiem: 2d (tam i z powrotem)
Prędkość dźwięku w powietrzu: 340 m/s = 34000 cm/s
Tak więc, d = (34000 * czas) / 2, gdzie czas = (TMR1H: TMR1L) / (1000000)
Dlatego, d = (TMR1H: TMR1L) /58.82 cm

Podczas przeprowadzania pomiarów zalecane jest aby zakres oddalonej powierzchni nie był mniejszy niż 0,5m2. Wymagana jest płaska gładka powierzchnia, w przeciwnym razie, będzie mieć to wpływ na wyniki pomiarów.

Jeżeli żadna przeszkoda nie zostanie wykryta, pin wyjściowy podaje sygnał wysokiego poziomu o czasie trwania 38ms.

Podstawowe parametry pracy:

⇒ Rozdzielczość 3mm,
⇒ Napięcie zasilania: DC 5V,
⇒ prąd pobierany podczas pracy: 15mA,
⇒ częstotliwość robocza: 40Hz,
⇒ maksymalny zasięg: 4m,
⇒ minimalny zasięg: 2cm,
⇒ dopuszczalny kąt pomiaru: 15°, (lub 30°)
⇒ czas trwania sygnału wyzwalającego Trigger: 10µS TTL,
⇒ wyjście sygnału Echo w zakresie poziomu TTL, zakres impulsu proporcjonalny do mierzonej odległości,
⇒ wymiary modułu: 45 x20 x15mm.

Przejdźmy teraz do konkretów związanych z Bascom AVR.

Na potrzeby rozpoznawcze modułu można zadowolić się instrukcją waitus dla wygenerowania sygnału startu pomiaru. Natomiast całą późniejszą robotą związaną z pomiarem stanu wysokiego wyprowadzenia ECHO, można obarczyć instrukcję pulsein ;-D która wystąpi w roli „pracowitego murzyna”. I tym sposobem kod stał się banalnie prosty do opracowania.
Jedynie zaznaczyć tu trzeba, że wartość mierzona jest w dziesiątkach mikrosekund, a stan licznika zapisywany jest na dwóch bajtach i może wynieść (65535) 655,35ms. W opisie polecenia wyczytamy również , że nie korzysta ono z timera, i w celu dostosowania jednostki zależnej od rezonatora, należy zmienić jej wartość w bibliotece mcs.lib. W przypadku przepełnienia licznika zmienna ERR zwróci wartość 1. Gdy będzie to niezbędne można posłużyć się biblioteką ($lib) „pulsein.lib”.

Krótkie omówienie i prezentacja wyników testu.

Na jakość pomiarów ma bezpośredni wpływ zastosowany oscylator mikrokontrolera. W trakcie testów, po przełączeniu źródła taktowania na zewnętrzny kwarc 16MHz, wyniki były bardzo powtarzalne i praktycznie nie występowały odstępstwa. Równie istotny jest kąt odbicia ultradźwięków od oddalonej płaszczyzny pomiarowej. W trakcie testów występowała rozbieżność wyników od rzeczywistej odległości, którą kontrolowałem miarą zwijaną, niemniej uważam, że precyzja pomiarów jest do „ogarnięcia” i wyskalowania. 😉

µC taktowany zewnętrznym kwarcem 16MHz, rzeczywista mierzona odległość 54cm

µC taktowany zewnętrznym kwarcem 16MHz, rzeczywista mierzona odległość 54cm, w oknie z przebiegiem można zaobserwować czas trwania sygnału mierzony przez analizator cyfrowy, a w oknie terminala prezentowane są cykliczne pomiary

µC taktowany wewnętrznym oscylatorem 8MHz, rzeczywista mierzona odległość 54cm, w oknie z przebiegiem można zaobserwować czas trwania sygnału mierzony przez analizator cyfrowy, a w oknie terminala prezentowane są cykliczne pomiary

µC taktowany wewnętrznym oscylatorem 8MHz, rzeczywista mierzona odległość 54cm, w oknie z przebiegiem można zaobserwować czas trwania sygnału mierzony przez analizator cyfrowy, a w oknie terminala prezentowane są cykliczne pomiary

wyniki pomiaru z terminala, rezonator wewnętrzny 8MHz, mierzona odległość 189cm

wyniki pomiaru z terminala, rezonator wewnętrzny 8MHz, mierzona odległość 189cm

8MHz, 184cm pomiar ultradźwiękami przez HC-SR04

pomiar ultradźwiękami przez HC-SR04, odległości 184cm

monitorowana odległość tym razem wynosi 88cm, MCU napędzany wewnętrznym oscylatorem 8MHz

monitorowana odległość tym razem wynosi 88cm, MCU napędzany wewnętrznym oscylatorem 8MHz

8MHz, 11cm

8MHz, 11cm

8MHz, 6cm

8MHz, mierzona odległość to 6cm

8MHz, 2cm

8MHz, testowany dystans 2cm

Najkrótszy dystans jaki udało mi się prawidłowo zmierzyć za pomocą modułu ultradźwiękowego HC-SR04 i wyświetlić wynik w terminalu wynosił 18mm. Najdłuższego nie byłem w stanie oszacować ze względu na skromne warunki , w testach największa mierzona odległość wynosiła nieco ponad 3m.

Na dziś dzień, są też podobne moduły przesyłające dane jako znaki ASCI. Moduł taki ma wtedy 3 wyprowadzenia. A wysyłane dane to gotowy wynik odległości w centymetrach.

Opis ma charakter wspominkowy, kiedyś to z ciekawości zakupiłem ten moduł. Jako taki do dziś dnia nie ma zastosowania i odpoczywa w szufladzie (od około 15-01-2013) do czasu, aż się przyda. W tytule napisałem „HC-SR04 Bascom AVR i …” z powodu braku pomysłu dla zastosowania tego kawałka elektroniki. Niemniej na pewno znalazł by zastosowanie u konstruktorów robotów, i pojazdów autonomicznych. Można by go też zastosować w samochodzie jako system ostrzegania przez zderzeniem, najechaniem na niewidoczną przeszkodę podczas manewrowania pojazdem.

widok modułu HC-SR05 (HY-SRF05)Buszując w zasobach internetu, kilka dni temu odkryłem jeszcze inną wersję tego modułu. Oznaczona została symbolem HC-SR05 (HY-SRF05), wygląda identycznie niemniej posiada dodatkowe piąte wyprowadzenie o nazwie OUT, którego funkcjonalności nie udało mi się odkryć. Przeglądając diagram z zaprezentowanym schematem komunikacji zakładam iż obsługiwać się go będzie identycznie w podstawowej funkcjonalności.


nota katalogowa HC-SR04_Cytron.pdf (216 pobrań) ,
nota katalogowa  HC-SR04_Elecfreaks.pdf (183 pobrania) ,
nota katalogowa  HC-SR04_IteadStudio.pdf (176 pobrań) ,
znaleziony schemat modułu HC-SR04_schemat.jpg (238 pobrań)

Share Button
Tagi , , , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

3 × two =