Arduino kod i video za HC-SR501 senzor pokreta
U ovom tutorijalu ćemo istražiti HC-SR501 senzor pokreta, koji je dizajniran za detekciju pokreta putem infracrvene tehnologije. Senzor može pokrenuti izlaz, omogućavajući vam da kontrolišete uređaje poput LED dioda ili alarma na osnovu detekcije pokreta. Do kraja ovog tutorijala, imat ćete jasno razumijevanje kako povezati senzor i implementirati Arduino kod kako bi funkcionirao efikasno. (u videu na 00:45)

Objašnjenje hardvera
HC-SR501 senzor pokreta je kompaktni modul dimenzija 32 puta 24 milimetra, sposoban za rad u rasponu napona od 5 do 20 volti. U njegovoj srži je LHI 778 infracrveni senzor, koji detektuje pokret osjećajući promjene u infracrvenom zračenju. To ga čini pogodnim za različite primjene, uključujući sigurnosne sisteme i robotske projekte.
Ovaj modul ima tri glavna pina: VCC za napajanje, GND za uzemljenje i OUT za izlazni signal. Kada se pokret detektuje, OUT pin šalje visoki signal (3.3 volta TTL), koji se može koristiti za pokretanje alarma ili drugih uređaja. Senzor također uključuje podesive postavke osjetljivosti i vremenskog kašnjenja, omogućavajući vam da prilagodite njegov rad prema vašim specifičnim potrebama.
Detalji iz tehničke dokumentacije
| Proizvođač | HC-SR501 |
|---|---|
| Broj dijela | HC-SR501 |
| Logički/IO napon | 3.3 V |
| Napon napajanja | 5–20 V |
| Izlazna struja (po kanalu) | ≤ 20 mA |
| Maksimalna struja (po kanalu) | ≤ 50 mA |
| PWM frekvencija smjernice | Nije primjenjivo |
| Ulazni logički pragovi | 0.8 V (LOW), 2.0 V (HIGH) |
| Pad napona / RDS(on) / zasićenje | 0.1 V |
| Toplotna ograničenja | 0°C do 70°C |
| Pakovanje | Modul |
| Napomene / varijante | Podesiva osjetljivost i vremensko kašnjenje |
- Osigurajte ispravan napon napajanja (5-20 V).
- Koristite otpornik serijski sa LED diodama za ograničenje struje.
- Podesite potenciometar osjetljivosti za domet detekcije.
- Postavite vremensko kašnjenje za kontrolu koliko dugo izlaz ostaje visok.
- Budite oprezni s plutajućim ulazima; koristite pull-up ili pull-down otpornike po potrebi.
Upute za povezivanje

Za povezivanje HC-SR501 senzora pokreta, počnite spajanjem VCC pina na 5V izlaz na Arduinu. Zatim spojite GND pin na uzemljenje (GND) na Arduinu. OUT pin treba spojiti na digitalni pin 2 na Arduinu, koji će čitati signal detekcije pokreta.
Ako koristite LED diodu za vizuelnu povratnu informaciju, spojite anodu (dugi pin) LED diode na digitalni pin 8 na Arduinu. Katoda (kratki pin) treba biti spojena na jedan terminal otpornika od 680 oma, s drugim terminalom otpornika spojenim na uzemljenje. Ova postavka omogućava Arduinu da kontroliše LED diodu na osnovu detekcije pokreta.
Primjeri koda i objašnjenje
Arduino kod za ovu postavku inicijalizira serijski monitor i konfiguriše ulazne i izlazne pinove. Ključni identifikatori u kodu uključuju motion, koji pohranjuje stanje senzora pokreta, i digitalne pinove koji se koriste za čitanje ulaza i kontrolu LED diode.
void setup() {
Serial.begin(9600);// postavljanje serijskog monitora za prikaz informacija
pinMode(2, INPUT);// Ulaz sa senzora
pinMode(8, OUTPUT);// IZLAZ na alarm ili LED diodu
}
U ovom izvatku, funkcija setup() inicijalizira serijsku komunikaciju i postavlja načine rada pinova za senzor i LED diodu. Pin 2 je postavljen kao ulaz za čitanje izlaza senzora pokreta, dok je pin 8 postavljen kao izlaz za kontrolu LED diode.
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("Pokret detektovan");
digitalWrite(8, HIGH);
}else{
Serial.println("===ništa se ne kreće");
digitalWrite(8, LOW);
}
delay(500);
}
Ovaj isječak koda predstavlja glavnu petlju u kojoj program kontinuirano provjerava stanje senzora pokreta. Ako se pokret detektuje, ispisuje "Pokret detektovan" na serijski monitor i uključuje LED diodu. Ako se pokret ne detektuje, ispisuje "===ništa se ne kreće" i isključuje LED diodu.
Demonstracija / Šta očekivati
Kada je postavka završena i kod je uploadan na Arduino, trebali biste očekivati da se LED dioda upali kada HC-SR501 senzor detektuje pokret. Dodatno, serijski monitor će prikazivati poruke koje ukazuju da li je pokret detektovan ili ne. Ako podesite postavke osjetljivosti i vremenskog kašnjenja na senzoru, možete primijetiti promjene u tome koliko brzo senzor reaguje na pokret (u videu na 05:30).
Uobičajene zamke uključuju pogrešno povezivanje, poput obrnutih veza za VCC i GND, što bi moglo oštetiti senzor. Osigurajte da je izlazni pin senzora ispravno spojen na predviđeni ulazni pin na Arduinu kako biste izbjegli plutajuće ulaze.
Vremenske oznake videa
- 00:00 Uvod
- 00:45 Pregled hardvera
- 02:30 Upute za povezivanje
- 04:00 Objašnjenje koda
- 05:30 Demonstracija
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of humans or objects using Arduino for robotic car and other applications
* Watch the video https://youtu.be/mZCJNOf69JI
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: Dec 27, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(2, INPUT);// Input from sensor
pinMode(8, OUTPUT);// OUTPUT to alarm or LED
}
void loop() {
int motion =digitalRead(2);
if(motion){
Serial.println("Motion detected");
digitalWrite(8,HIGH);
}else{
Serial.println("===nothing moves");
digitalWrite(8,LOW);
}
delay(500);
}
Resursi i reference
Još nema resursa.
Datoteke📁
Ostale datoteke
-
HC-SR501 motion sensor LHI778 manual
robojax-HC-SR501-motion-LHI778-manual.pdf0.20 MB