Ebben az útmutatóban megismerkedünk a PIR HC-SR501 modullal. Ez egy mozgásérzékelő, amely infravörös fényt érzékel (innen a PIR – passive infrared elnevezés), állítható időzítéssel és érzékenységgel. Katalógusunkban a szenzoron kívül akril tartót is találhat.
-
Akril tartó HC-SR501-hez290Ft (ÁFA nélkül 228Ft ) -
HC-SR501 PIR infravörös mozgásérzékelő kék645Ft (ÁFA nélkül 508Ft )
Működési elv
A modul meglehetősen nagy részét egy úgynevezett Fresnel-lencse foglalja el, amely a fényenergiát a szenzorra fókuszálja, ahol azt érzékeli. Nem látható fényről, hanem annak infravörös tartományáról van szó, amelyet minden tárgy kibocsát. Mi emberek az infravörös sugárzást hőként érzékeljük, tehát minden, ami melegebb a környezeténél (például egy ember vagy akár egy állat), a szenzor által érzékelhető.

Hardver
A HC-SR501 panel felső részén található a lencse és az érzékelő, míg az alsó oldalon a hangoláshoz szükséges potméterek és a kimeneti pinek helyezkednek el. A modul lehetővé teszi az érzékenység és a bekapcsolási idő finomhangolását potméterek segítségével. Ezen felül található rajta egy jumper is, amely az üzemmódot állítja be.

Jumper L – ha a modul mozgást érzékel, a kimeneten a beállított ideig logikai 1 jelenik meg. Amennyiben ebben az időtartamban ismét mozgás történik, a modul figyelmen kívül hagyja azt, és az idő letelte után a kimenet logikai 0 lesz
Jumper H – ha a modul mozgást érzékel, a kimeneten a beállított ideig logikai 1 jelenik meg. Ha a működési idő alatt újból mozgást érzékel, akkor a modul újraindítja az időzítést, és ismét a beállított időt várja le. A kimeneten csak az új időtartam letelte után lesz logikai 0

További információért javasoljuk a datasheet áttanulmányozását.
Program és bekötés
A modul használata nagyon egyszerű és intuitív, és még csak könyvtárat sem kell használnunk. A tápfeszültség 3,3V–20V között lehet, a kimeneti jel pedig 3,3V szintre van stabilizálva (az Arduino és a legtöbb mikrovezérlő kompatibilis ezzel a feszültségszinttel).
Ha a modul mozgást érzékel, az OUT kimeneti pin logikai 1-et (3,3V) ad, ha pedig nem érzékel mozgást, akkor logikai 0 (0V) jelenik meg a kimeneten. A kódban tehát elegendő figyelni, hogy a bemeneti pin logikai 1-et kap-e.

// tento kód zabezpečí, že ak detegujeme pohyb, LED dióda na pine 13 sa rozsvieti a na seriálový monitor vypíšeme
// správu o detekcií pohybu
// definujeme použité piny
#define pirPin 2
#define ledPin 13
// pomocné premenné
int vstup_zo_senzora = 0;
bool motionState = false; // inicializujeme na false, žiadny pohyb detegovaný
void setup() {
// konfigurácia pinov ako výstup a vstup
pinMode(ledPin, OUTPUT);
pinMode(pirPin, INPUT);
Serial.begin(9600); //inicializácia komunikácie s PC
}
void loop() {
vstup_zo_senzora = digitalRead(pirPin); // prečítame vstup zo senzora
if (vstup_zo_senzora == HIGH) { //ak sme detegovali pohyb....
digitalWrite(ledPin, HIGH); // zapneme LED
if (motionState == false) { //zmenime nastavenie premennej na true, ak predtým bola false a vypíšeme správu
Serial.println("Pozor, pohyb!");
motionState = true;
}
}
else { //ak nie je detegovaný pohyb...
digitalWrite(ledPin, LOW); // vypneme LED
if (motionState == true) { //zmeníme nastavenie premmennej na false a vypíšeme správu
Serial.println("Pohyb prestal.");
motionState = false;
}
}
}További olvasnivaló és források
- https://www.makerguides.com/hc-sr501-arduino-tutorial/
- https://sk.wikipedia.org/wiki/Fresnelova_%C5%A1o%C5%A1ovka
