W tym artykule połączymy ultradźwiękowy dalmierz-sonar HC-SR04 z Arduino.
Niezbędny
- - Arduino;
- - czujnik ultradźwiękowy HC-SR04;
- - przewody łączące.
Instrukcje
Krok 1
Działanie dalmierza ultradźwiękowego HC-SR04 opiera się na zasadzie echolokacji. Emituje impulsy dźwiękowe w przestrzeń i odbiera sygnał odbity od przeszkody. Odległość do obiektu jest określona przez czas propagacji fali dźwiękowej do przeszkody iz powrotem.
Fala dźwiękowa jest wyzwalana przez przyłożenie dodatniego impulsu o długości co najmniej 10 mikrosekund do ramienia TRIG dalmierza. Gdy tylko impuls się kończy, dalmierz emituje w przestrzeń przed nim serię impulsów dźwiękowych o częstotliwości 40 kHz. Jednocześnie uruchamiany jest algorytm określania czasu opóźnienia odbitego sygnału, a na nodze ECHO dalmierza pojawia się jednostka logiczna. Gdy tylko czujnik wykryje odbity sygnał, na pinie ECHO pojawia się zero logiczne. Czas trwania tego sygnału („opóźnienie echa” na rysunku) określa odległość do obiektu.
Zakres pomiaru odległości dalmierza HC-SR04 - do 4 metrów z rozdzielczością 0,3 cm Kąt obserwacji - 30 stopni, kąt efektywny - 15 stopni. Pobór prądu w trybie czuwania wynosi 2 mA, podczas pracy - 15 mA.
Krok 2
Zasilanie dalmierza ultradźwiękowego odbywa się napięciem +5 V. Pozostałe dwa piny podłączamy do dowolnych portów cyfrowych Arduino, połączymy do 11 i 12.
Krok 3
Teraz napiszmy szkic, który określa odległość do przeszkody i wyprowadza ją na port szeregowy. Najpierw ustalamy numery pinów TRIG i ECHO - są to piny 12 i 11. Następnie deklarujemy wyzwalacz jako wyjście i echo jako wejście. Inicjujemy port szeregowy z prędkością 9600 bodów. Przy każdym powtórzeniu pętli () odczytujemy odległość i wyprowadzamy ją do portu.
Funkcja getEchoTiming() generuje impuls wyzwalający. Po prostu wytwarza prąd o długości 10 mikrosekund, który jest wyzwalaczem do rozpoczęcia promieniowania przez dalmierz pakietu dźwiękowego w kosmos. Wtedy przypomina sobie czas od początku transmisji fali dźwiękowej do nadejścia echa.
Funkcja getDistance() oblicza odległość do obiektu. Ze szkolnego kursu fizyki pamiętamy, że odległość jest równa prędkości pomnożonej przez czas: S = V * t. Prędkość dźwięku w powietrzu to 340 m/s, czas w mikrosekundach jaki znamy to „duratuion”. Aby uzyskać czas w sekundach, podziel przez 1 000 000. Ponieważ dźwięk pokonuje dwukrotną odległość - do obiektu iz powrotem - musisz podzielić odległość na pół. Okazuje się więc, że odległość do obiektu S=34000 cm/s*czas trwania/1 000 000 s/2=1,7 cm/s/100, o czym pisaliśmy w szkicu. Mikrokontroler wykonuje mnożenie szybciej niż dzielenie, więc zamieniłem "/100" na odpowiednik "*0,01".
Krok 4
Ponadto napisano wiele bibliotek do pracy z dalmierzem ultradźwiękowym. Na przykład ten: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Bibliotekę instaluje się w standardowy sposób: pobierz, rozpakuj do katalogu bibliotek, który znajduje się w folderze z Arduino IDE. Następnie można korzystać z biblioteki.
Po zainstalowaniu biblioteki napiszmy nowy szkic. Wynik jego pracy jest taki sam – monitor portu szeregowego wyświetla odległość do obiektu w centymetrach. Jeśli wpiszesz float dist_cm = ultradźwięki. Ranging (INC); w szkicu, odległość zostanie wyświetlona w calach.
Krok 5
Podłączyliśmy więc dalmierz ultradźwiękowy HC-SR04 do Arduino i otrzymaliśmy z niego dane na dwa różne sposoby: za pomocą specjalnej biblioteki i bez.
Zaletą korzystania z biblioteki jest znaczne zmniejszenie ilości kodu oraz poprawa czytelności programu, nie musisz zagłębiać się w zawiłości urządzenia i możesz od razu z niego korzystać. Ale to też jest wada: słabiej rozumiesz, jak działa urządzenie i jakie procesy w nim zachodzą. W każdym razie wybór metody zależy od Ciebie.