Mozgásérzékelő (PIR) szenzor programozása

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