HC-SR04 ultrahangos távolság mérő


Távolság érzékelőt  főleg a robotikában hasznosítják, a robotnak szemet ad,
hogy elkerülje az útjába kerülő akadályokat. Használják vízszint érzékelőnek sőt
parkolási szenzornak is.

Szükséges alkatrészek:

- Arduino Uno

- Usb kábel

- Próbapanel

- Összekötő vezetékek

- HC-SR04 ultrahangos szenzor

Nézzük a kapcsolást:

A kód:


/*
HC-SR04 Szenzor lábkiosztása:
VCC az Arduinoról 5v
GND az Arduinoról GND
Echo az Arduino 11-es lába
Trig az Arduino 12-as lába

This sketch originates from Virtualmix: http://goo.gl/kJ8Gl
Has been modified by Winkle ink here: http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html
And modified further by ScottC here:http://arduinobasics.blogspot.com.au/2012/11/arduinobasics-hc-sr04-ultrasonic-sensor.html
on 10 Nov 2012.
*/


#define echoPin 11 // Echo 11-es lábhoz rendelve
#define trigPin 12 // Trigger a 12-as lábhoz
#define LEDPin 13 // Arduino beépített led 13-as láb

int maximumRange = 200; // maximális távolság értéke
int minimumRange = 0; // minimális távolság értéke
long duration, distance; // Időtartam kiszámításához használt távolság

void setup() {
Serial.begin (9600);//soros monitor bitsebessége
pinMode(trigPin, OUTPUT);// beállítás kimenetnek(kimenő jel a szenzorra)
pinMode(echoPin, INPUT);// beállítás bemenetenek(bejövő jel a szenzorról)
pinMode(LEDPin, OUTPUT); // a led kimenet beállítása
}

void loop() {
/* Egy ultrahang küldő fogadó ciklus. */
digitalWrite(trigPin, LOW); // nincs kimeneti hang (2mikrosec)
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);// kimeneti ultrahang küldése (10microsec)
delayMicroseconds(10);

digitalWrite(trigPin, LOW);// nincs kimeneti hang
duration = pulseIn(echoPin, HIGH);// ultrahang érzékelő bekapcsolása és elmentése a duration változóba


//A hangsebesség alapján kiszámítjuk a távolságot cm-ben és ezt az értéket a distance változóba tesszük.
distance = duration/58.2;
if (distance >= maximumRange || distance <= minimumRange){

/* ha distance értéke a megadott tartományon kívül esik akkor bekapcsol a led és küld egy negatív számot a soros monitorra
*/

Serial.println("-1");
digitalWrite(LEDPin, HIGH); //led bekapcsolása
}
else {
/* ha tartományon belül van akkor a távolság értékét elküldi a soros monitora és a led is kikapcsol. */
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
//várakozik 50ms-ot a következő beolvasásig
delay(50);
}

Tehát a programunk a soros monitora írja ki a távolság értékét cm-ben ha a megadott tartományon belül helyezkedik el ez az érték. (0-200cm)

Az ultrahangos távolság mérőről:
A távolságmérő kiad egy rövid ultrahang csomagot ami az első útjába eső akadályról
vissza verődik, amit érzékel a hangfogadásra átkapcsolt távolság mérő. A kiadott és visszaérkezett hang közt eltelt időt méri és ezt számolja át a mikrovezérlő távolsággá.
Aztán kezdődik újból a ciklus másodpercenként több százszor ezerszer a megadott várakozási időktől függően.

Következő cikk: Távolságmérő II.140717

Jó méricskélést!