11. Projekt --Mozgásérzékelő (PIR) szenzor programozása -- V1.0
by Roboworld Hobbielektronika
Rövid leírás:
Ebben a rövid projektben bemutatjuk neked a mozgásérzékelő (PIR) szenzor működését. Egy LED-et és egy buzzert fogunk bekapcsolni, amikor a szenzor mozgást érzékel.
Hardware
1 db Arduino Uno
1db Mozgásérzékelő PIR –HC-SR501 szenzor
1db LED + Ellenállás
Jumper kábel
Kapcsolási rajz:
Mozgásérzékelő PIR szenzorról
A PIR mozgásérzékelő modulnak 3 darab pinje (GND, OUT, VCC) és két potmétere van, amelyből az egyik az távolság beállítására szolgál, a másik pedig a késleltetés beállítására. A késletetés lehet 0.3s-tól egészen 5 perces hosszúságú. Mozgás érzékelése esetén a beállított késleltetési idő intervallumban az OUT magas jelet ad. A szenzoron továbbá megtalálható még 3 darab pin, amely egy jumperrel van összekötve (képen ezt citromsárga színnel láthatod). Ezzel a jumperrel tudod állítani, hogy a jel, amelyet érzékel ismétlődő (repeatable) vagy nem ismétlődő (non-repeatable) legyen. Hogy mit is jelent ez? Egy példa segítségével bemutatom. Tegyük fel, hogy van egy lámpa, ami csak a mozgás esetén kapcsol be. Amikor a szenzor érzékeli, hogy mozgás történt a lámpa világítani kezd majd a késleltetési idő végeztével az lekapcsol, közben pedig nem foglalkozik a szenzor azzal, hogy volt e mozgás. Ezt hívják nem ismétlődő ciklusnak.
Az ismétlődő ciklusnál egészen addig világít a lámpa, ameddig mozgást érzékel. Tehát ha te a szenzor előtt mondjuk integetsz, akkor az nem kapcsol le, mivel folyamatosan újra indul a késleltetési idő (ameddig mozgás van a szenzor tartja a magas értéket).
Fontos még megjegyezni, hogy a szenzor bekapcsolás után körülbelül 1 perc elteltével lesz használható, mivel az érzékelésért felelős pyroelektromos modulnak be kell melegednie.
Programozás, mintakód
int LED = 4; int PIR = 7;
//pinek definiálása
int Buzzer = 2; void setup() { pinMode(LED, OUTPUT);
//LED és buzzer kimenetének definiálása. LED kimenet, buzzer, kimenet.
pinMode(Buzzer, OUTPUT); pinMode(PIR, INPUT);
//szenzor pinjének definiálása bemenetként
} // Program kezdete void loop() { int value = digitalRead(PIR);
//digitalRead funkció használata a szenzor értékének a leolvasásához.
if (value == HIGH){
//ha mozgás történt akkor a LED és a buzzer bekapcsol.
digitalWrite(LED, HIGH);
//Egészen addig világít a LED és ad hangot a buzzer
digitalWrite(Buzzer, HIGH);
//ameddig PIR szenzoron lévő potméter(késleltetési idő) beállítottuk
} else { // Ha nincs mozgás akkor a LED és a BUZZER alacsony értéket kap. digitalWrite(LED, LOW); digitalWrite(Buzzer, LOW); } }
Felhasználás
Számos helyen felhasználhatjuk az adott szenzort. Pl: Mozgásérzékelő lámpáknál, riasztóknál stb.
Letöltés:
A leírás PDF-ben : itt található
Mintakódot innen tudod letölteni
Megjegyzések
Megjegyzés küldése