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
Megjegyzések
Megjegyzés küldése