Ардуино код и видео за HC-SR501 сензорот за движење
Во ова упатство, ќе го истражиме сензорот за движење HC-SR501, кој е дизајниран да детектира движење преку инфрацрвена технологија. Сензорот може да активира излез, овозможувајќи ви да контролирате уреди како што се LED диоди или аларми врз основа на детекција на движење. До крајот на ова упатство, ќе имате јасно разбирање за тоа како да го поврзете сензорот и да го имплементирате Arduino кодот за да функционира ефикасно. (во видео на 00:45)

Објаснување на хардверот
Сензорот за движење HC-SR501 е компактен модул со димензии 32 на 24 милиметри, способен да работи во опсег на напон од 5 до 20 волти. Во неговото јадро е инфрацрвениот сензор LHI 778, кој детектира движење преку забележување на промени во инфрацрвеното зрачење. Ова го прави погоден за различни апликации, вклучувајќи безбедносни системи и роботски проекти.
Овој модул има три главни пина: VCC за напојување, GND за заземјување и OUT за излезниот сигнал. Кога ќе се детектира движење, пинот OUT испраќа висок сигнал (3.3 волти TTL), кој може да се користи за активирање на аларми или други уреди. Сензорот исто така вклучува прилагодливи поставки за чувствителност и временско доцнење, овозможувајќи ви да ја прилагодите неговата работа според вашите специфични потреби.
Детали од техничката документација
| Производител | HC-SR501 |
|---|---|
| Број на дел | HC-SR501 |
| Логички/IO напон | 3.3 V |
| Напон на напојување | 5–20 V |
| Излезна струја (по канал) | ≤ 20 mA |
| Врвна струја (по канал) | ≤ 50 mA |
| Насоки за PWM фреквенција | Не е применливо |
| Влезни логички прагови | 0.8 V (LOW), 2.0 V (HIGH) |
| Пад на напон / RDS(on) / заситување | 0.1 V |
| Термички граници | 0°C до 70°C |
| Пакет | Модул |
| Белешки / варијанти | Прилагодлива чувствителност и временско доцнење |
- Осигурете се дека напонот на напојување е точен (5-20 V).
- Користете отпорник во серија со LED диодите за ограничување на струјата.
- Прилагодете го потенциометарот за чувствителност за опсегот на детекција.
- Поставете го временското доцнење за да контролирате колку долго излезот останува висок.
- Бидете внимателни со лебдечки влезови; користете pull-up или pull-down отпорници по потреба.
Инструкции за поврзување

За да го поврзете сензорот за движење HC-SR501, започнете со поврзување на пинот VCC со 5V излезот на Arduino. Потоа, поврзете го пинот GND со заземјувањето (GND) на Arduino. Пинот OUT треба да биде поврзан со дигиталниот пин 2 на Arduino, кој ќе го чита сигналот за детекција на движење.
Ако користите LED диода за визуелна повратна информација, поврзете ја анодата (долгиот пин) на LED диодата со дигиталниот пин 8 на Arduino. Катодата (краткиот пин) треба да биде поврзана со еден терминал на отпорник од 680 оми, а другиот терминал на отпорникот треба да оди на заземјување. Оваа поставка му овозможува на Arduino да ја контролира LED диодата врз основа на детекција на движење.
Примери на код и објаснување
Arduino кодот за оваа поставка го иницијализира серискиот монитор и ги конфигурира влезните и излезните пинови. Клучните идентификатори во кодот вклучуваат motion, кој ја складира состојбата на сензорот за движење, и дигиталните пинови што се користат за читање на влезот и контролирање на LED диодата.
void setup() {
Serial.begin(9600);// поставување на Serial Monitor за прикажување информации
pinMode(2, INPUT);// Влез од сензорот
pinMode(8, OUTPUT);// ИЗЛЕЗ до аларм или LED
}
Во овој извадок, функцијата setup() ја иницијализира сериската комуникација и ги поставува режимите на пиновите за сензорот и LED диодата. Пинот 2 е поставен како влез за читање на излезот од сензорот за движење, додека пинот 8 е поставен како излез за контролирање на LED диодата.
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("Детектирано движење");
digitalWrite(8, HIGH);
}else{
Serial.println("===ништо не се движи");
digitalWrite(8, LOW);
}
delay(500);
}
Овој фрагмент од код ја претставува главната јамка каде програмата континуирано ја проверува состојбата на сензорот за движење. Ако се детектира движење, печати „Детектирано движење“ на серискиот монитор и ја вклучува LED диодата. Ако не се детектира движење, печати „===ништо не се движи“ и ја исклучува LED диодата.
Демонстрација / Што да очекувате
Кога поставката е завршена и кодот е поставен на Arduino, треба да очекувате LED диодата да светне кога сензорот HC-SR501 ќе детектира движење. Дополнително, серискиот монитор ќе прикажува пораки што укажуваат дали е детектирано движење или не. Ако ги прилагодите поставките за чувствителност и временско доцнење на сензорот, може да забележите промени во тоа колку брзо сензорот реагира на движење (во видео на 05:30).
Вообичаени грешки вклучуваат неправилно поврзување, како што е обратно поврзување на VCC и GND, што може да го оштети сензорот. Осигурете се дека излезниот пин на сензорот е правилно поврзан со назначениот влезен пин на Arduino за да избегнете лебдечки влезови.
Временски ознаки на видеото
- 00:00 Вовед
- 00:45 Преглед на хардверот
- 02:30 Инструкции за поврзување
- 04:00 Објаснување на кодот
- 05:30 Демонстрација
/*
* 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);
}
Ресурси и референци
Сè уште нема ресурси.
Датотеки📁
Други датотеки
-
HC-SR501 motion sensor LHI778 manual
robojax-HC-SR501-motion-LHI778-manual.pdf0.20 MB