Chcete lepší cenu ? napište nám!

Návod pro PIR detektor pohybu HC-SR501 + malý projekt

V dnešním článku se dozvíte něco o PIR detektorech pohybu a konkrétně se naučíte pracovat s detektorem pohybu HC-SR501. Návod spolu s malým projektem si můžete přečíst nebo ho můžete sledovat i jako video.

 

Co je to PIR senzor ?

Teď trochu obecný teorie. Zkratka PIR pochází ze slov pasivní infračervené čidlo. Snad všechno co známe vyzařuje teplo, které ale my nevidíme. Toto teplo je vyzařováno jako infračervené záření. PIR senzory detekují právě toto infračervené záření, které vyzařují například lidé.

PIR senzory se používají pro detekci pohybu člověka, zvířat a různých objektů. Využití najde u zabezpečovacích systému nebo třeba u světelných systému.

Slovo pasivní je odvozeno od způsobu detekce. Senzor nepotřebuje nic vyzařovat nebo vysílat, aby pohyb detekoval.

pir_piny

 

Nyní máme za sebou krátké info o PIR senzorech a teď můžeme jít na praktikou část.

Senzor PIR HC-SR501 má 3 piny: GND, SIGNÁL, 5V

Zapojení je jednoduché. PIN GND spojíte s pinem GND na Arduinu a pin 5V taky s pinem 5V na Arduinu. A pin SIGNÁL připojíte na jeden z digitálních pinu Arduina. V našem projektu jsem ho připojili na pin 10.

Poté ještě můžete pomoci dvou trimeru můžete nastavovat citlivost a dobu sepnutí: T1-citlivost senzoru (vzdálenost detekce) | T2- doba trvání logické 1 po detekci objektu.

Pomoci žluté svorky vlevo lze nastavit režim detekce. Stav H- senzor stále detekuje pohyb a prodlužuje čas sepnutí. Stav L- senzor po první detekci již dále nedetekuje pohyb a znovu začne detekovat pohyb až skončí časová perioda detekce pohybu, tedy až se přestane zobrazovat na výstupu 1(HIGH). 

A ještě je důležité vědět, že po spuštění senzoru je třeba počkat 30-60s na to až se senzor "vzpamatuje". Potom začne normálně detekovat objekty.

 

Nyní přejděme k našemu projektu. Projekt č.1 je velmi jednoduché zapojení, kdy pomoci senzoru, při detekci pohybu rozsvítíme LEDku. Projekt č.2 je to samé jenom je trochu rozšířen. Ve videu na Youtube naleznete právě ukázku projektu č.2.

 

Projekt č.1

 

Jako první propojíme senzor s Arduinem. 

1. GND->GND

2. 5V->5V

3. SIGNÁL-> Digitální pin 10 na Arduinu

Teď připojíme naši LEDku přes odpor do Arduino.

Anoda(kladná- delší nožka)-> pin 8

Ke katodě (kratší nožička) dáme rezistor (stačí 220-330 Ω)-> a propojíme s GND Arduina

 

Teď bude potřeba nahrát kód do Arduino IDE.

 

int LED=8; // číslo pinu, na kterém je připojena červená blikající LEDka
int PIR=10; // číslo pinu, na kterém je připojen signál senzoru PIR (je to ten prostřední kolík na senzoru)
int stav; // vytvoření proměnné, do které se bude ukládat stav

void setup() {
  pinMode(LED,OUTPUT); // nastavení červené LEDky jako výstup
  pinMode(PIR,INPUT); // nastavení PIR senzoru jako vstup (bude vracet 0 nebo 1=detekován pohyb)
  Serial.begin(9600); // zahajení komunikace,abychom si mohli zobrazit logickou 0 nebo 1 na seriovém monitoru
}

void loop() {
  stav=digitalRead(PIR); // do proměnné uložíme 0 nebo 1, kterou jsme přečetli z pinu 10, kde připojen signál senzoru
  Serial.println(stav); // Vypíšeme do seriového monitoru hodnotu na pinu

  if (stav==1){  // podmínka: když je pohyb zapni LEDku a počkej 5000ms (5s) a poté LEDku vypni
    digitalWrite(LED,HIGH);
    delay(5000);
    digitalWrite(LED,LOW);
  }
}
        

 

 

Tak to byl projekt č.1. Pokud byste nechápali kód jsou v něm komentáře, které popisují co dělá. Pokud stále nechápete kód nebo schéma napište nám na info@bastlik.cz my vám rychle poradíme, aby jste mohli pokračovat ve svých projektech.

 

Projekt č.2

Teď tu bude více propojování, ale nemělo by to být nic náročného. Je to skoro úplně to stejné, co projekt č.1, ale tady jsem navíc přidal červenou LEDku, která bude blikat, když bude logická 0. To blikání bude imitovat, že bezpečnostní systémy jsou v provozu a detekují pohyb a jakmile detekují objekt rozsvítí se bílé světlo, které se na ty loupežníky posvítí. Jelikož chci trochu silnější světlo zapojil jsem 3 bílé LED diody, které ale nelze napájet pouze 5V,protože napětí na jedné diodě je okolo 2,7V x3 je více něž 5V, proto jsme přes tranzistor PN2222 připojil 9V baterii. 

Důležité je taky si pro své další projekty zapamatovat, že každá barva LED diody má jiné napětí.

 

Jako první propojíme senzor s Arduinem. 

1. GND->GND

2. 5V->5V

3. SIGNÁL-> Digitální pin 10 na Arduinu

Dále propojíme:

4. Na pin 8 připojíme přes rezistor 220-330 Ω LED diodu (kratší noha mínus, delší noha plus)

5. Na pin 9 připojíme bázi (B) tranzistoru přes rezistor 10K-18K Ω

6. Ke kolektoru (C) zapojím 3 LED diody sériově

7. Dále připojíme 9V baterii- kladný pól (+) na kolektor (C) na anodu (delší noha) první LEDky a záporný pól (-) na emitor (E) Tranzistoru

8. Na emitor (E) připojím vodič z GND Arduina 

 

Použít můžete i jiný NPN tranzistor než PN2222

Pokud nevíte, kde má váš tranzistor vývody, koukněte se do datasheetu daného tranzistoru

 

Teď je potřeba ještě nahrát kód pro projekt č.2

 

int LED=8; // číslo pinu, na kterém je připojena červená blikající LEDka
int LED1=9; // číslo pinu, na kterém je pripojena bílá LEDka
int PIR=10; // číslo pinu, na kterém je připojen signál senzoru PIR (je to ten prostřední kolík na senzoru)
int stav; // vytvoření proměnné, do které se bude ukládat stav

void setup() {
  pinMode(LED,OUTPUT); // nastavení červené LEDky jako výstup
  pinMode(LED1,OUTPUT); // nastavení LEDek jako výstup
  pinMode(PIR,INPUT); // nastavení PIR senzoru jako vstup (bude vracet 0 nebo 1=detekován pohyb)
  Serial.begin(9600); // zahajení komunikace,abychom si mohli zobrazit logickou 0 nebo 1 na seriovém monitoru
}

void loop() {
  stav=digitalRead(PIR); // do proměnné uložíme 0 nebo 1, kterou jsme přečetli z pinu 10, kde připojen signál senzoru
  Serial.println(stav); // Vypíšeme do seriového monitoru hodnotu na pinu

  if (stav==1){  // podmínka: když je pohyb zapni LEDku a počkej 5000ms (5s) a poté LEDku vypni
    digitalWrite(LED1,HIGH);
    delay(5000);
    digitalWrite(LED1,LOW);
  }
  else { // když není podmínka splněná bude červená LEDka blikat (např. tak jak to bývá u alarmu)
    digitalWrite(LED,HIGH);
    delay(500);
    digitalWrite(LED,LOW);  
    delay(500); 
  }
}
        

 


Děkuji Vám moc za pozornost při čtení článku. Nevzdávejte se, za chvíli z Vás budou opravdu dobří profící, kteří rozumí elektronice a programování mikrokontrolérům.

Pokud jste něčemu neporozuměli, napište nám na e-mail info@bastlik.cz . Budeme se snažit Vám co nejlépe vysvětlit to, čemu nerozumíte.