Blog  /  Czujnik ultradźwiękowy Arduino – kompletny przewodnik po HC-SR04

Czujnik ultradźwiękowy Arduino – kompletny przewodnik po HC-SR04

Czy myślisz o tym, aby dać swojemu Arduino oczy, a może świadomość przestrzenną? Tylko dlatego, że na pewno nie chcesz, aby Twój robot rozbił się lub spadł ze stołu! Alternatywnie, może myślisz o zrobieniu czujnika parkowania, czujnika poziomu wody lub urządzenia do pomiaru odległości. Nie wiesz jednak, jak zacząć?

Jesteś we właściwym miejscu! Powiemy Ci dokładnie, jak możesz osiągnąć wszystkie te cele za pomocą czujnika odległości. Czujnik ultradźwiękowy HC-SR04 Arduino jest drugim czujnikiem zbliżeniowym, który idealnie nadaje się do pomiaru odległości i unikania obiektów/przeszkód.

W tym poradniku opowiemy Ci wszystko o czujniku ultradźwiękowym i o tym, jak współpracuje on z mikrokontrolerem Arduino. Zakładamy, że jesteś początkującym użytkownikiem i zaczniemy wyjaśniać wszystko od podstaw.

1、Ultrasonic Sensor Arduino

1.1 Co to jest czujnik ultradźwiękowy

Ultrasonic Sensor jest moduł, który oblicza odległość od przeszkody / ciała za pomocą fal dźwiękowych. Jego działanie polega na wysyłaniu fali dźwiękowej o częstotliwości ultradźwiękowej, a następnie wstrzymaniu się do momentu, aż ciało/obiekt odbije falę. Następnie do pomiaru odległości wykorzystuje się opóźnienie czasowe pomiędzy wysłaniem fali, a jej powrotem.

Innymi słowy, jest to czas potrzebny na wysłanie i odebranie fali dźwiękowej. Poniższe równanie dodatkowo wyjaśni twoją koncepcję:

Teraz pewnie zastanawiasz się, dlaczego odległość została podzielona przez 2. To dlatego, że fale dźwiękowe mają podwójną przestrzeń. To jest najpierw od czujnika ultradźwiękowego, a następnie ponownie do czujnika po odbiciu. Tak więc, aby obliczyć, jak daleko znajduje się obiekt, powinniśmy podzielić odległość przez 2.

Czujnik ultradźwiękowy Arduino

Obrazek 1: Czujnik ultradźwiękowy Arduino

1.2 Co to jest czujnik ultradźwiękowy HC-SR04?

HC-SR04 jest doskonałym czujnikiem ultradźwiękowym Arduino i jest dość popularny wśród koderów. Podobnie jak to, co robią nietoperze, HC-SR04 wykorzystuje SONAR do pomiaru odległości obiektu od podmiotu. Charakteryzuje się wysoką dokładnością i znakomitą bezkontaktową detekcją zasięgu.

HC-SR04 daje stabilne odczyty i ma kompaktowy kształt i konstrukcję, która jest łatwa w użyciu. Można go kupić w zależności od łatwości, z długością pakietu w zakresie od 2 cm do 400 cm. Najlepszą częścią jest to, światło słoneczne lub czarny materiał nie może wpływać na jego pracę. Mimo to, może to być trudne do wykrycia miękkich materiałów, takich jak ubrania.

Kiedy już dostaniesz go w swoje ręce, możesz łatwo zauważyć, że zawiera on indywidualny odbiornik ultradźwiękowy i moduł nadajnika. Rysunek 1 przedstawia moduł HC-SR04, który dostaniemy z rynku. Ultradźwiękowy moduł nadajnika wysyła fale dźwiękowe, które podróżują przez medium, a następnie obiekt odbija go. Te odbite z powrotem moduł odbiornika ultradźwiękowego odbiera fale dźwiękowe.

Podobnie jak w przypadku pierwotnego czujnika ultradźwiękowego, można wtedy zmierzyć odległość obiektu od podmiotu. Wszystko, czego potrzebujesz to opóźnienie czasowe pomiędzy transmisją fali i powrotem do czujnika. Możesz użyć tego czujnika w wielu projektach, takich jak robot do pokonywania przeszkód na ścianie, robot do omijania przeszkód i urządzenie do pomiaru odległości.

Arduino Ultrasonic Sensor

Obrazek 2: Arduino Ultrasonic Sensor

2、Arduino Ultrasonic Sensor Connection

2.1 Jakie są piny HC-SR04 Arduino Ultrasonic Sensor

Przed rozpoczęciem każdego projektu, zawsze trzeba będzie połączyć czujnik ultradźwiękowy z mikrokontrolerem Arduino. Możesz kupić dowolny mikrokontroler Arduino z rynku, taki jak Arduino UNO, Arduino Mega, Arduino nano. Rysunek 2 przedstawia płytkę z mikrokontrolerem Arduino UNO. Podłączenie HC-SR04 do Arduino jest proste, ponieważ zawiera on tylko cztery piny. Jeśli jesteś w stanie zrozumieć prostą zasadę działania tych czterech pinów, jesteś gotowy do pracy.

HC-SR04 jest wyposażony w następujące cztery piny:

- VCC. Dostarcza napięcie 5 V potrzebne do prawidłowego działania czujnika.

- GND. To jest pin masy.

- Trig. Jest to pin wyzwalający, który wysyła fale dźwiękowe.

- Echo. Jest to pin Receiving, który odbiera odbite fale dźwiękowe.

Kluczowe cechy, na które należy zwrócić uwagę to:

- Moduł wymaga napięcia pracy wynoszącego 5V DC.

- Prąd roboczy modułu wynosi 15mA.

- Mierzy z pomiarem kąta 15°.

- Posiada możliwość pomiaru odległości w zakresie od 2cm do 4m.

2.2 Jak połączyć HC-SR04 z mikrokontrolerem Arduino?

W tym rozdziale, powiemy Ci jak możesz połączyć HC-SR04 z mikrokontrolerem Arduino. Ponownie, zadanie jest dość proste. Vcc, pin zasilania, jest zawsze związany z pinem 5V Arduino. GND, pin uziemienia, jest zawsze połączony z pinem masy Arduino. W przypadku pinów Trigger i Echo, to już zależy od Ciebie, jak chcesz je połączyć z Arduino.

Pamiętaj jednak, że zawsze powinieneś podłączyć pin Trigger i Echo do pinów cyfrowych Arduino. W naszym przykładzie, pin Trigger jest podłączony do pinu 11, a pin Echo jest podłączony do pinu 12 Arduino.

Zanim przejdziemy do tego, jak możesz zakodować ten czujnik na mikrokontrolerze Arduino, aby działał w Twoim projekcie, w następnym rozdziale zapoznamy Cię z biblioteką NewPing dla Arduino.

Arduino Ultrasonic Sensor

Obrazek 3: Arduino Ultrasonic Sensor

3、Biblioteka czujnika ultradźwiękowego Arduino

3.1 Czym jest biblioteka NewPing?

Jeśli nie jesteś zaznajomiony z biblioteką NewPing, będziesz miał wiele kłopotów. Możesz mieć wrażenie, że nowo zainstalowany czujnik ultradźwiękowy nie działa dobrze, ponieważ nie wiesz, że problemem nie jest czujnik ultradźwiękowy, ale obecna biblioteka ping i ultradźwiękowa.

Biblioteka NewPing jest prezentem od Arduino, który całkowicie rozwiązuje wszelkie problemy. Daje ona wiele nowych funkcji, a w Twoich ultradźwiękowych czujnikach Arduino pojawi się nowe życie.

3.2 Jak pobrać bibliotekę NewPing?

Możesz pobrać bibliotekę tutaj: Download NewPing Library.
Po pobraniu wystarczy umieścić folder "NewPing" w folderze "libraries" w bibliotekach Arduino. W tym momencie oczekujemy od Ciebie, że pobrałeś już Arduino IDE i wiesz jak przejść do jego folderu z bibliotekami. Arduino IDE jest oprogramowaniem służącym do kodowania projektów mikrokontrolerów Arduino.

Po zakończeniu kopiowania i wklejania folderu "NewPing", otwórz Arduino IDE, utwórz nowy plik szkicu, lub możesz również otworzyć stary. Przejdź do paska menu i wybierz "Sketch->Include Library->NewPing". Teraz jesteś gotowy, aby rozpocząć kodowanie swojego projektu. Rysunek 3 przedstawia opcję "include library".

Arduino Ultrasonic Sensor

Obrazek 4: Arduino Ultrasonic Sensor

4、Ultrasonic Sensor Arduino Przykładowy projekt

4.1 Projekt pomiaru odległości

W tym projekcie, naszym jedynym celem jest, aby dać Ci znać, jak HC-SR04 może mierzyć odległość od obiektu. Poprzez dokładne zrozumienie kodu źródłowego tego projektu, możesz go łatwo zmienić, aby wykorzystać go w swoim projekcie.

4.2 Jakie komponenty są wymagane

Przede wszystkim, będziesz potrzebował płytki Arduino, czujnika ultradźwiękowego, deski do krojenia i przewodów do zworki. Brzmi to prosto. Co więcej, biblioteka NewPing sprawi, że Twoje życie stanie się łatwiejsze i szczęśliwsze. W naszym przykładzie, połączyliśmy HC-SR04 z mikrokontrolerem Arduino, jak pokazano w Tabeli 1. Możesz również przylutować piny HC-SR04, jak pokazano na rysunku 4.

Czujnik ultradźwiękowy Arduino

Obrazek 5: Czujnik ultradźwiękowy Arduino

Ponadto, sugeruje, że w połączeniu, należy pamiętać o następujących punktach:

- Proszę nie umieszczać czujnika ultradźwiękowego na metalowej powierzchni, ponieważ może to spowodować zwarcie. Ponadto, co się dzieje w przypadku zwarcia? Przez obwód przepływa wysoki prąd, który w tym przypadku może spalić Państwa czujnik.

- Aby ułatwić montaż czujnika ultradźwiękowego, powinieneś pokryć tylną stronę czujnika taśmą elektryczną. Bardzo polecamy ten krok.

- Nie jest również konieczne montowanie czujnika ultradźwiękowego na płytce drukowanej. Możesz jawnie połączyć czujnik z mikrokontrolerem Arduino używając jedynie zworki.

Po podłączeniu obwodu zgodnie z sugestią, możesz przejść do następnego rozdziału. W następnym rozdziale zamieściliśmy kod źródłowy i wyjaśnienie naszego przykładowego projektu.

Arduino Ultrasonic Sensor

Obrazek 6: Arduino Ultrasonic Sensor

5、HC-SR04 Ultrasonic Sensor Arduino Code

5.1 Kod źródłowy projektu pomiaru odległości

Poniższy kod jest najprostszym kodem, jaki można uzyskać za pomocą biblioteki NewPing. Po zainstalowaniu biblioteki NewPing, możesz skopiować i wkleić ten kod do Arduino IDE. Stamtąd możesz go wgrać do swojej płytki Arduino. Mamy nadzieję, że wiesz już jak wgrać kod na płytkę Arduino. W następnym podrozdziale dokładnie to wyjaśniliśmy.

/* * created by http://playground.arduino.cc/Code/NewPing */

#include

#define TRIGGER_PIN 9

#define ECHO_PIN 10

#define MAX_DISTANCE 200

// Ustawienie pinów i maksymalnej odległości dla NewPinga

Sonar NewPing(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {Serial.begin(9600);}

void loop() {delay(50);

unsigned int distance = sonar.ping_cm();

Serial.print(distance)

Serial.println("cm");

5.2 Objaśnienie kodu źródłowego projektu pomiaru odległości

Biblioteka NewPing pozwala w dość prosty sposób zmierzyć odległość od obiektu. Pierwsza linia kodu dodaje funkcjonalności biblioteki NewPing, więc powinieneś zacząć kodować.

Dołącz bibliotekę, postępując zgodnie z krokami opisanymi w rozdziale 3:

#include

Następną rzeczą, którą musisz zrobić, jest zadeklarowanie lub zdefiniowanie pinów wyzwalacza i echa. Możesz dowolnie wybrać dowolny pin Arduino do połączenia z czujnikiem, pod warunkiem, że jest to pin cyfrowy. W naszym przykładzie podłączyliśmy pin Trigger z pinem cyfrowym 9 Arduino, a pin Echo jest podłączony z pinem cyfrowym 12 Arduino.

#define TRIGGER_PIN 11

#define ECHO_PIN 12

Następnie, aby móc korzystać z biblioteki, należy ustawić wartość maksymalnej odległości. W tym celu należy zdefiniować zmienną MAX_DISTANCE.

#define MAX_DISTANCE 200

Następnie należy utworzyć instancję "NewPing" o nazwie sonar:
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

Następnie dla komunikacji szeregowej, zainicjalizowaliśmy ją w setup() z szybkością transmisji 9600.

Serial.begin(9600);

Teraz w funkcji loop(), aby uzyskać wartość odległości, wystarczy użyć atrybutu ping_cm(). Atrybut ten należy do obiektu sonaru z biblioteki NewPing. W efekcie otrzymamy odległość od obiektu w centymetrach. W naszym przykładzie zdefiniowaliśmy, że odległość jest zmienną typu integer i jest nieujemna. Ponadto, jeśli nie czujesz się komfortowo mierząc odległość w centymetrach, możesz również zmierzyć ją w calach. Po prostu użyj sonar.ping_in() aby uzyskać wartość odległości w calach.

unsigned int distance = sonar.ping_cm();

Na koniec wydrukowaliśmy wyniki na monitor szeregowy używając funkcji print() i published In() z Arduino IDE.

Serial.print(distance);

Serial.println("cm");

Aby jeszcze bardziej wyjaśnić, w jaki sposób Arduino może ułatwić Ci życie, na rysunku 5 pokazano pracę, jaką Twój mikrokontroler Arduino będzie wykonywał w tym projekcie. Gdyby to nie było Arduino, musiałbyś to robić ręcznie.

5.3 Kod źródłowy projektu pomiaru odległości z wyświetlaczem LCD

Jeżeli chcesz wyświetlać wartości odległości na ekranie LCD, możesz to zrobić za pomocą poniższego nowego kodu. Ten kod jest prostą przeróbką poprzedniego kodu.
#include

#include // zawiera bibliotekę LiquidCrystal

LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

#define TRIGGER_PIN 9

#define ECHO_PIN 10

#define MAX_DISTANCE 200

// NewPing ustawia piny i maksymalną odległość NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {Serial.begin(9600);lcd.begin(16,2);}

void loop() {

delay(50);

unsigned int distance = sonar.ping_cm();

Serial.print(distance);

Serial.println("cm");

lcd.setCursor(0,0); // Ustawia miejsce, w którym będzie wyświetlany kolejny tekst zapisywany na LCD lcd.print("Distance: "); // Drukuje ciąg znaków "Distance" na wyświetlaczu LCD lcd.print(distance); // Drukuje wartość odległości od czujnika lcd.print(" cm");

delay(10);

5.4 Objaśnienie kodu źródłowego projektu pomiaru odległości za pomocą wyświetlacza LCD

Ponownie, ten kod jest prosty do zrozumienia. Wspomnimy tylko o zmianach, które zostały dokonane w poprzednim kodzie. Po pierwsze, dołącz bibliotekę LiquidCrytal. Następnie należy utworzyć obiekt LCD. Będzie on inicjalizował piny/parametry reset, enable, d4, d5, d6 i d7 LCD.

LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

Następnie należy zainicjalizować interfejsy ekranu LCD. Należy również podać rozmiar (szerokość i wysokość) LCD. Powinno to być zrobione w setup(). W naszym przykładzie, LCD jest typu 16x2, więc zainicjowaliśmy go tak:

lcd.begin(16,2);

Następnie definiujemy miejsce na ekranie, w którym chcemy wyświetlić tekst. Jest to proste, wystarczy tylko ustawić kursor:

LCD.setCursor(0,0);

Do wypisania wartości odległości użyj funkcji print() obiektu LCD.

LCD.print("Odległość: ");

lcd.print(distance);

lcd.print(" cm");

Arduino Ultrasonic Sensor

Obrazek 7: Arduino Ultrasonic Sensor

6、Zakończenie

Teraz, mamy nadzieję, że jesteś gotowy, aby rozpocząć kodowanie nowych projektów. Naszym głównym celem było zapewnienie Państwu kompletny przewodnik na Arduino Ultrasonic Sensor. Nie musisz odwiedzać różnych stron internetowych, aby know-it-all, ponieważ mamy dokładnie pokryte wszystko.

Twój umysł musi pękać od nowych pomysłów, które mogą być wprowadzone w życie teraz. Będziesz także zgodzić się, że HC-SR04 jest rzeczywiście najlepszy niedrogi czujnik ultradźwiękowy, który jest obecnie dostępny na rynku. Kup jeden i zaskoczyć nas z fantastycznych pomysłów na projekt.

Możemy również pomóc, jeśli szukasz pomysłów na projekt, który powinieneś wykonać za pomocą czujnika ultradźwiękowego. Możesz spróbować zbudować cyfrowy czujnik parkowania z wbudowanym systemem alarmowym. Wyświetla on wartości odległości samochodu od obiektu i włącza alarm, jeśli pojazd zbliża się zbyt blisko.

Ponadto, jeśli nadal potrzebujesz więcej pomocy lub chcesz o coś zapytać, zawsze jesteśmy do Twojej dyspozycji. Wystarczy skontaktować się z nami pod adresem [email protected] lub odwiedzić naszą stronę internetową, aby uzyskać najlepszą obsługę klienta. Nasz zespół inżynierów będzie bardzo zadowolony, aby pomóc Ci z projektami.