Pomiar odległości z wykorzystaniem Arduino i czujnika HC-SR04 lub US-015
Przedstawione czujniki umożliwiają pomiar odległości przy pomocy ultradźwięków. Czujnik wysyła falę, która po odbiciu od przeszkody wraca do niego. Obliczając czas między wysłaniem, a odebraniem impulsu jesteśmy w stanie określić odległość od obiektu.
Będziemy potrzebować następujące elementy:
Podłączenie czujnika z Arduino:
W celu obsługi czujnika z wykorzystaniem Arduino należy połączyć układ w następujący sposób:
Pin BH1750 | Pin Arduino |
---|---|
VCC | 5 V |
GND | GND |
TRIG | 2 |
ECHO |
3 |
Schemat połączenie czujnika ultradźwiękowego z Arduino Uno.
Program do Arduino
W przykładzie został wykorzystany następujący kod:
int Trig = 2; //pin 2 Arduino połączony z pinem Trigger czujnika int Echo = 3; //pin 3 Arduino połączony z pinem Echo czujnika int CM; //odległość w cm long CZAS; //długość powrotnego impulsu w uS void setup() { Serial.begin(9600); //inicjalizaja monitora szeregowego pinMode(Trig, OUTPUT); //ustawienie pinu 2 w Arduino jako wyjście pinMode(Echo, INPUT); //ustawienie pinu 3 w Arduino jako wejście Serial.println("Test czujnika odleglosci"); } void loop() { pomiar_odleglosci(); //pomiar odległości Serial.print("Odleglosc: "); //wyświetlanie wyników na ekranie w pętli co 200 ms Serial.print(CM); Serial.println(" cm"); delay(200); } void pomiar_odleglosci () { digitalWrite(Trig, LOW); //ustawienie stanu wysokiego na 2 uS - impuls inicjalizujacy - patrz dokumentacja delayMicroseconds(2); digitalWrite(Trig, HIGH); //ustawienie stanu wysokiego na 10 uS - impuls inicjalizujacy - patrz dokumentacja delayMicroseconds(10); digitalWrite(Trig, LOW); digitalWrite(Echo, HIGH); CZAS = pulseIn(Echo, HIGH); CM = CZAS / 58; //szerokość odbitego impulsu w uS podzielone przez 58 to odleglosc w cm - patrz dokumentacja }
W celu obliczenia odległości od obiektu, czas odpowiedzi jest dzielony przez 58 (wg dokumentacji). Dlaczego akurat tyle? Ta wartość pochodzi ze wzoru:
CZAS / [1/(0.34 / 2 )/10]
- wartość w nawiasie kwadratowym równa jest 58:
- 0.34 - prędkość fali w m/ms (340 m/s) dzielona przez 2 (ponieważ fala przebyła drogę w dwie strony).
- Dodatkowo wszystko dzielne przez 10, by zamienić milimetry na centymetry
Wynik programu możemy obejrzeć na monitorze szeregowym:
Zrzut ekranu szeregowego monitora.