Měření vzdálenosti pomocí Arduina a snímače HC-SR04 nebo US-015

Prezentované senzory umožňují měření vzdálenosti pomocí ultrazvuku. Senzor vysílá vlnu, která se k ní vrací po odrazu od překážky. Výpočtem času mezi vysláním a přijetím impulsu jsme schopni určit vzdálenost od objektu.

Budeme potřebovat následující položky:

Připojení senzoru k Arduinu:

Aby bylo možné provozovat senzor pomocí Arduina, musí být systém připojen následujícím způsobem:

Kolík BH1750 Pin Arduino
VCC 5 V
GND GND
TRIG 2
ECHO

3

Schéma zapojení ultrazvukového senzoru s Arduino Uno.

Program pro Arduino

V příkladu byl použit následující kód:

  1. int Trig = 2; // Arduino pin 2 připojený ke spouštěcímu pinu senzoru
  2. int Echo = 3; // Arduino pin 3 připojený k Echo pin senzoru
  3. int CM; // vzdálenost v cm
  4. dlouho; // délka zpětného impulzu v uS
  5. neplatné nastavení ()
  6. {
  7. Serial.begin (9600); // inicializuje sériový monitor
  8. pinMode (Trig, OUTPUT); // nastaví pin 2 v Arduinu jako výstup
  9. pinMode (Echo, INPUT); // nastavení pinu 3 v Arduinu jako vstupu
  10. Serial.println ("Test snímače vzdálenosti");
  11. }
  12. neplatná smyčka ()
  13. {
  14. distance_measure (); // měření vzdálenosti
  15. Serial.print ("Vzdálenost:"); // zobrazí výsledky na obrazovce ve smyčce každých 200 ms
  16. Serial.print (CM);
  17. Serial.println ("cm");
  18. zpoždění (200);
  19. }
  20. void measurementment_odleglosci ()
  21. {
  22. digitalWrite (Trig, LOW); // nastavení vysokého stavu na 2 uS - inicializační impuls - viz dokumentace
  23. delayMicroseconds (2);
  24. digitalWrite (Trig, HIGH); // nastavení vysokého stavu na 10 uS - inicializační impuls - viz dokumentace
  25. delayMicroseconds (10);
  26. digitalWrite (Trig, LOW);
  27. digitalWrite (Echo, HIGH);
  28. TIME = pulseIn (Echo, HIGH);
  29. CM = TIME / 58; // šířka odraženého impulzu v uS děleno 58 je vzdálenost v cm - viz dokumentace
  30. }

Pro výpočet vzdálenosti k objektu je doba odezvy dělena 58 (podle dokumentace). Proč tolik? Tato hodnota je odvozena ze vzorce:

ČAS / [1 / (0,34 / 2) / 10]

  • hodnota v hranatých závorkách je 58:
    • 0,34 - rychlost vlny vm / ms (340 m / s) dělená 2 (protože vlna obíhala oběma směry).
    • Navíc vše dělitelné 10 převádí milimetry na centimetry

Výsledek programu lze zobrazit na sériovém monitoru:

Screenshot sériového monitoru.

zveme vás ke spolupráci!