Ultrahangos távolságérzékelő zümmögővel & LED-el

4. Projekt -- Ultrahangos távolságérzékelő zümmögővel & LED-el --V1.2

  by Roboworld Hobbielektronika


Rövid leírás:
Ebben a rövid projektben bemutatjuk neked az ultrahangos távolságmérő szenzor (HC-SR04) működését és hogy használjuk mindezt egy zümmögővel(buzzer) és egy LED-el. Abban az esetben, ha egy tárgy közelít az szenzorhoz és elér egy adott távolságot a zümmögő, illetve a LED is bekapcsol.

Hardware: 1 db Arduino Uno
1 db Ultrahangos távolságérzékelő HC-SR04
1 db Zümmögő (buzzer)
1 db Breadboard + vezeték
1 db LED
- 220ohm ellenállás

Kapcsolási rajz:


Hanghullámokról

Tételezzük fel, hogy egy objektum 10 cm-re van a szenzortól. A hang sebessége 340m/s (méter/szekundum) vagy 0,034 cm/µs (centiméter/mikroszekundum), tehát ekkor a hanghullámnak körülbelül 294 µs kell haladnia. De az a hullám, amit kapsz majd az Echo pintől az kétszeres érték mivel a hanghullám elér az objektumhoz majd visszapattanik róla. Tehát annak érdekében, hogy a távolságot cm-ben kapjuk meg megkell szoroznunk a visszaérkező útidő értékét (EchoPin) 0.034-gyel (hang sebessége) és osztanunk kell 2-vel



Programozás, mintakód:

Először, amit tenned kell, hogy definiálod a Trig és az Echo pint. Esetünkben a pinek száma 9 és 10 az Arduinon, ahogy a kapcsolási rajzon is láthatod. Ezután egy long változót és egy integer kell definiálnod amit „idotartam”-nak és „tavolsag”-nak nevezünk el.

A setup-ban meg kell határozni a trigPin -t kimenetként (OUTPUT) az echoPin-t pedig bemenetként (INPUT) és természetesen a soros kommunikációt se feledd, hogy a pillanatnyi eredmények láthatóak legyenek a serial monitoron.

A trigPin arra szolgál, hogy lüktető jeleket adjon ki megfelelő időközönként. A lüktetési időt lehet változtatni, azonban azt is figyelembe kell venni, hogy minél nagyobb a lüktetési idő annál tovább tart a pontos távolságot meghatározni és annál pontatlanabb is lesz az eredményt. Az echoPin a visszavert hanghullámokat figyeli a pulseIn parancs segítségével. A pulseIn csak a HIGH jeleket olvassa az echoPin-en. Amikor HIGH jelet kap akkor az időzítő elindul majd mikor LOW-ra vált az időzítő megáll.

Ezek után töltsd fel az Arduino-ra majd nyisd meg a Serial Monitort, hogy valós időben lásd a távolság változását.
/* Project 4 - Ulrahangos távolság érzékelő + zümmögő(buzzer) & LED 
by Roboworld Hobbielektronika 
www.hobbielektronikabolt.hu 
*/ 
const int trigPin = 9;                // Pinek definiálása 
const int echoPin = 10; 
const int buzzer = 11; 
const int ledPin = 13; 

long idotartam;                       // változók definiálása 
int tavolsag; 
int biztonsagosTavolsag; 

void setup() { 

pinMode(trigPin, OUTPUT);             // trigPin beállítása kimenetként 
pinMode(echoPin, INPUT);              // echoPin beállítása bemenetként 
pinMode(buzzer, OUTPUT);              // buzzer beállítása kimenetként 
pinMode(ledPin, OUTPUT);              // ledPin beállítása kimenetként 
Serial.begin(9600);                   // Serial kommunikació beállítása 
} 

void loop() { 

digitalWrite(trigPin, LOW);          // trigPin LOW állapotba helyezése 
delayMicroseconds(2); 
digitalWrite(trigPin, HIGH);         // trigPin  HIGH állapotba állítása 10 microszekundumig 
delayMicroseconds(10); 
digitalWrite(trigPin, LOW); 

idotartam = pulseIn(echoPin, HIGH);    // Olvassa az echoPin-t,amely  a visszatérő hanghullámoknak az idejét 
                                       // tartalmazza mikroszekundumban. 
tavolsag= idotartam*0.034/2;           // Távolság kalkulálása 
biztonsagosTavolsag = tavolsag; 

if (biztonsagosTavolsag <= 5){ 
digitalWrite(buzzer, HIGH); 
digitalWrite(ledPin, HIGH); 
} 
else{ 
digitalWrite(buzzer, LOW); 
digitalWrite(ledPin, LOW); 
} 
Serial.print("Távolság: ");            // Kiírja a serial monitorra a távolságot 
Serial.println(tavolsag); 
} 
}
Letöltés 

A projekthez tartozó linkek alább találhatóak.
A leírás PDF-ben : Itt található
Mintakód: Itt található

Megjegyzések