0. Komponenty i niezbędne oprogramowanie modułu czujnika ultradźwiękowego HC-SR04

Wymagane komponenty:

{Produkt: 2000} {Produkt: 337}
  • • Kable Dupont

I. Jak korzystać z modułu pomiaru odległości modułu czujnika ultradźwiękowego HC-SR04

HC-SR04 to klasyka modułów pomiaru odległości dla Arduino . Jego sukces wynika z tego, jak prosto i łatwo można sprawić, by działał w projektach Arduino , PIC lub dowolnym innym mikrokontrolerze. Na jego pinie wyjściowym możemy zmierzyć szerokość impulsu PWM na podstawie odległości od przeszkody.

II. Eksperymentalne procedury

Połączenie

Moduł zasilany jest bezpośrednio z Arduino , więc nie potrzebujemy zewnętrznego zasilania.

Piny są połączone zgodnie z tabelą:

Moduł pinów

Przypnij przez Arduino UNO

Vcc

5V

WYRZUCIŁ

D2

WYMUSKANY

D3

GND

GND

Schemat jest więc następujący:

Aby wygenerować ultradźwięki, musimy ustawić pin wyzwalacza w stan wysoki na 10 µs. To wyśle 8-cyklową serię dźwiękową, która będzie podróżować z prędkością dźwięku i zostanie odebrana na Echo Pin. Echo Pin wygeneruje czas w mikrosekundach, przez jaki przebyła fala dźwiękowa.

Na przykład, jeśli obiekt znajduje się 20 cm od czujnika, a prędkość dźwięku wynosi 340 m / s lub 0,034 cm / µs, fala dźwiękowa będzie musiała przebyć około 588 mikrosekund. Ale to, co otrzymasz ze szpilki Echo, będzie dwukrotnie większe, ponieważ fala dźwiękowa musi przemieszczać się do przodu i odbijać się z powrotem. Aby więc otrzymać odległość w cm, musimy pomnożyć wartość czasu podróży otrzymanego z pinu echa przez 0,034 i podzielić przez 2.

Kod

Dla kodu programowania musimy najpierw zdefiniować Pin Trigger i Echo Pin, które zostały podłączone do Arduino . W tym projekcie EchoPin jest dołączony do D2, a TrigPin do D3. Następnie zdefiniuj zmienne dotyczące odległości (int) i czasu trwania (long).

Otwórz nowy szkic i wklej następujący kod:

const int EchoPin = 2;

const int TriggerPin = 3;

void setup () {

Serial.begin (9600);

pinMode (TriggerPin, OUTPUT);

pinMode (EchoPin, INPUT);

}

void loop () {

int cm = ping (TriggerPin, EchoPin);

Serial.print ("Zmierzona odległość:");

Serial.println (cm);

opóźnienie (1000);

}

// Obliczenia odległości

int ping (int TriggerPin, int EchoPin) {

długi czas trwania, odległośćCm;

digitalWrite (TriggerPin, LOW); // aby wygenerować czysty impuls ustawiamy LOW 4us

delayMicroseconds (4);

digitalWrite (TriggerPin, HIGH); // generujemy Trigger (trigger) o wartości 10us

delayMicroseconds (10);

digitalWrite (TriggerPin, LOW);

duration = pulseIn (EchoPin, HIGH); // mierzymy czas między impulsami w mikrosekundach

distanceCm = czas trwania * 10/292/2; // przelicz na odległość w cm

return distanceCm;

}

Teraz, po załadowaniu kodu, jeśli otworzymy Monitor szeregowy z Narzędzi, możemy zobaczyć odległość, na jaką ustawiamy obiekty przed czujnikiem. Spróbuj powiększyć i pomniejszyć.

Z drugiej strony, interesującą biblioteką, której możesz używać z tym modułem jest NewPing.h