Návod – HC-SR501 pohybový senzor – Techfun.sk – Naj Arduino shop
27. októbra 2021

Návod – HC-SR501 pohybový senzor

V tomto návode sa zoznámime s modulom PIR HC-SR501. Jedná sa o pohybový senzor snímajúci infračervené svetlo (z toho označenie PIR – passive infrared) s nastaviteľným časovaním a citlivosťou. V našom katalógu môžete nájsť okrem samotného senzor aj akrylátový držiak.

Princíp funkčnosti

Pomerne veľkú časť modulu zaberá tzv. fresnelova šošovka, ktorá sústreďuje svetelnú energiu do senzora, ktorý ju sníma. Nejedná sa však o viditeľné svetlo ale o jeho infračervenú časť, ktorú vylučujú všetky objekty. My ako ľudia vnímame infračervené žiarenie ako teplo, to znamená, že všetko teplejšie ako okolie (napríklad človek alebo aj zviera) vie tento senzor zachytiť.

HC-SR501-PIR-Motion-Sensor-fresnel-lens-working-principle

Hardvér

Na doske HC-SR501 sa na vrchnej strane nachádza šošovka so senzorom, zatiaľ čo na spodnej sú potenciometre pre ladenie a výstupné piny. Modul umožňuje pomocou potenciometrov jemné ladenie citlivosti a doby zopnutia. Okrem toho je na doske aj jumper nastavujúci pracovný mód.

Jumper L – ak modul detegoval pohyb tak na výstupe je logická 1 po nastavenú dobu. V prípade, že v tejto dobe opäť nastal pohyb, modul ho ignoruje a na výstupe bude logická 0 po uplynutí času

Jumper H – ak modul detegoval pohyb tak na výstupe je logická 1 po nastavenú dobu. V prípade, že v tejto dobe zopnutia opäť nastal pohyb, tak modul resetuje uplynutý čas a opäť čaká nastavenú dobu. Na výstupe bude logická 0 až po uplynutí nového času

Pre viac informácií odporúčame preštudovať datasheet.

Program a zapojenie

Používanie modulu je veľmi jednoduché a intuitívne a dokonca ani nemusíme používať žiadnu knižnicu. Napájanie je možné od 3.3V – 20V, pričom výstupný signál je ustálený na 3.3V (Arduino a väčšina iných mikrokontrolérov je kompatibilná s touto napäťovou úrovňou).

Ak modul zaznamená pohyb, na výstupnom pine OUT bude logická 1 (3.3V) a ak modul pohyb nezaznamená, na výstupe je logická 0 (0V). V kóde nám teda stačí sledovať, či na vstupnom pine máme logickú 1.

HC-SR501-PIR-motion-sensor-with-Arduino-UNO-wiring-diagram-schematic
// 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;
    }
  }
}

Ďalšie čítanie a zdroje

  • https://www.makerguides.com/hc-sr501-arduino-tutorial/
  • https://sk.wikipedia.org/wiki/Fresnelova_%C5%A1o%C5%A1ovka

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *