Ардуино код и видео за HC-SR505 модул за сензор за движење со реле
Во ова упатство, ќе изградиме систем за детекција на движење користејќи го сензорот за движење HC-SR505 и реле модул. Оваа поставка ќе ви овозможи да вклучувате уреди како светла или зумери кога ќе се детектира движење. Релето дејствува како прекинувач за безбедно контролирање на уреди со висок напон. До крајот на ова упатство, ќе имате функционална поставка за сензор за движење што може да активира различни апарати врз основа на детекција на движење. За појасно разбирање, проверете го придружното видео (во видео на 0:00).

Објаснување на хардверот
Главните компоненти на овој проект вклучуваат сензор за движење HC-SR505, реле модул и Arduino плоча. HC-SR505 е пасивен инфрацрвен (PIR) сензор кој детектира движење преку sensing промени во инфрацрвеното зрачење. Работи со мерење на топлината што ја емитуваат објектите во неговото видно поле. Кога ќе се детектира објект што се движи, сензорот испраќа сигнал до Arduino.
Реле модулот се користи за контролирање на уред со висок напон, како што е светилка. Дејствува како електрично управуван прекинувач, овозможувајќи му на Arduino безбедно да го вклучува или исклучува уредот. Релето има две главни конфигурации: нормално отворено (NO) и нормално затворено (NC), кои ја одредуваат стандардната состојба кога релето не е активирано.
Детали од податочната листа
| Производител | HC-SR505 |
|---|---|
| Број на дел | HC-SR505 |
| Логички/IO напон | 3.3V - 20V |
| Напон на напојување | 5V |
| Излезна струја (по канал) | 20 mA |
| Врвна струја (по канал) | 100 mA |
| Насоки за PWM фреквенција | N/A |
| Прагови на влезна логика | 0.3V (ниско) / 2.5V (високо) |
| Пад на напон / RDS(on) / сатурација | 0.2V |
| Термички граници | +70 °C |
| Пакет | Модул |
| Белешки / варијанти | Мала форма; ниска потрошувачка на енергија |
- Обезбедете соодветно одведување на топлина за оптоварувања со висока струја.
- Користете декуплерски кондензатори за стабилно напојување.
- Бидете внимателни со врски со висок напон; обезбедете безбедност.
- Тестирајте го сензорот со едноставни излези пред да го поврзете со релеа.
- Проверете ја ориентацијата на PIR сензорот за оптимална детекција.
Инструкции за поврзување

За да го поврзете сензорот за движење HC-SR505, прво поврзете го пинот за напојување (означен со +) на 5V излезот на вашиот Arduino. Потоа, поврзете го пинот за заземјување (означен со -) на еден од пиновите за заземјување на Arduino. Пинот за сигнал (средниот пин) треба да се поврзе на дигиталниот пин 2 на Arduino.
За реле модулот, поврзете го VCC пинот на 5V излезот на Arduino и пинот за заземјување на заземјувањето на Arduino. Влезниот пин на релето треба да се поврзе на дигиталниот пин 9 на Arduino. Конечно, поврзете го позитивниот терминал на зумерот на дигиталниот пин 8 и неговиот негативен терминал на заземјување. Погрижете се да ги поврзете заедничкиот и нормално отворениот пин на релето соодветно за да го контролирате вашиот уред.
Примери на код и објаснување
Кодот за овој проект ги иницијализира пиновите за сензорот, зумерот и релето. Ја користи функцијата digitalRead() за да провери за движење и реагира соодветно. Подолу е извадок од функцијата за поставување:
void setup() {
Serial.begin(9600); // поставување на Serial Monitor
pinMode(PIR, INPUT_PULLUP); // дефинирање на пинот како влез за сензорот
pinMode(BUZZER, OUTPUT); // дефинирање на пинот како излез за зумерот
pinMode(RELAY, OUTPUT); // дефинирање на пинот како излез за релето
}
Во овој извадок, пиновите се поставени на режим на влез или излез. Serial.begin(9600) ја иницијализира сериската комуникација за дебагирање.
Главната јамка проверува за движење и го активира зумерот и релето кога ќе се детектира движење. Еве фокусиран извадок од функцијата на јамката:

void loop() {
int motion = digitalRead(PIR); // читање на сензорот
if(motion) {
Serial.println("Детектирано движење");
digitalWrite(BUZZER, HIGH); // вклучување на зумерот
digitalWrite(RELAY, LOW); // вклучување на релето
} else {
Serial.println("===ништо не се движи");
digitalWrite(BUZZER, LOW); // исклучување на зумерот
digitalWrite(RELAY, HIGH); // исклучување на релето
}
delay(500);
}
Овој извадок ја чита состојбата на PIR сензорот и го активира или деактивира зумерот и релето врз основа на детектираното движење. Доцнењето од 500 милисекунди осигурува дека јамката го проверува сензорот во разумен интервал.
Демонстрација / Што да очекувате
Кога ќе се детектира движење, светлото поврзано со релето ќе се вклучи, а зумерот ќе звучи. Ако не се детектира движење, релето ќе го исклучи светлото, а зумерот ќе биде тивок. Имајте предвид дека HC-SR505 има вградено доцнење што го одржува излезот активен кратко време по детекцијата на движење (до 8 секунди), што не може да се прилагоди (во видео на 5:30).
Временски ознаки на видеото
- 00:00 – Вовед во проектот
- 01:30 – Објаснување на компонентите
- 03:15 – Инструкции за поврзување
- 05:30 – Објаснување на кодот
- 07:00 – Демонстрација на поставката
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of human or objects using Arduino for robotic car and other applications
* Watch HC-SR505 video https://youtu.be/qhThpxiXubI
*
// Written by Ahmad S. for Robojax.com on
// February 10, 2018 at 11:41 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.
*
*/
#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay
void setup() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}
void loop() {
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
int motion =digitalRead(PIR);// read the sensor
if(motion){
Serial.println("Motion detected");
digitalWrite(BUZZER,HIGH);// turn the buzzer ON
digitalWrite(RELAY,LOW);// turn the relay ON
}else{
Serial.println("===nothing moves");
digitalWrite(BUZZER,LOW);// keep the buzzer OFF
digitalWrite(RELAY,HIGH);// turn the relay OFF
}
delay(500);
// HC-SR505 Motion Sensor Code by Robojax.com 20180210
}
Работи што можеби ќе ви требаат
-
AmazonBuy relay shield from Amazonamzn.to
-
Amazon
-
AliExpressBuy 5V/12V 1, 2, 4, 6, or 8-channel relay modules.click.aliexpress.com
Ресурси и референци
Сè уште нема ресурси.
Датотеки📁
Технички лист (pdf)
-
robojax-HC-SR505-manual.pdf
robojax-HC-SR505-manual.pdf0.09 MB
Fritzing датотека
-
HC-SR501 Body Sensor Module
HC-SR501 Body Sensor Module.fzpz0.01 MB