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:
int Trig = 2; // Arduino pin 2 připojený ke spouštěcímu pinu senzoru int Echo = 3; // Arduino pin 3 připojený k Echo pin senzoru int CM; // vzdálenost v cm dlouho; // délka zpětného impulzu v uS neplatné nastavení () { Serial.begin (9600); // inicializuje sériový monitor pinMode (Trig, OUTPUT); // nastaví pin 2 v Arduinu jako výstup pinMode (Echo, INPUT); // nastavení pinu 3 v Arduinu jako vstupu Serial.println ("Test snímače vzdálenosti"); } neplatná smyčka () { distance_measure (); // měření vzdálenosti Serial.print ("Vzdálenost:"); // zobrazí výsledky na obrazovce ve smyčce každých 200 ms Serial.print (CM); Serial.println ("cm"); zpoždění (200); } void measurementment_odleglosci () { digitalWrite (Trig, LOW); // nastavení vysokého stavu na 2 uS - inicializační impuls - viz dokumentace delayMicroseconds (2); digitalWrite (Trig, HIGH); // nastavení vysokého stavu na 10 uS - inicializační impuls - viz dokumentace delayMicroseconds (10); digitalWrite (Trig, LOW); digitalWrite (Echo, HIGH); TIME = pulseIn (Echo, HIGH); CM = TIME / 58; // šířka odraženého impulzu v uS děleno 58 je vzdálenost v cm - viz dokumentace }
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.