Пребарување код

Ардуино код и видео за HC-SR505 модул за сензор за движење со реле

Ардуино код и видео за HC-SR505 модул за сензор за движење со реле

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

HC-SR505 motion sensor

Објаснување на хардверот

Главните компоненти на овој проект вклучуваат сензор за движење 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 сензорот за оптимална детекција.

Инструкции за поврзување

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

За да го поврзете сензорот за движење 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) ја иницијализира сериската комуникација за дебагирање.

Главната јамка проверува за движење и го активира зумерот и релето кога ќе се детектира движење. Еве фокусиран извадок од функцијата на јамката:

Wirig relay module to AC load

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 – Демонстрација на поставката

Слики

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Јазик: C++
/*
 * 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
}

Работи што можеби ќе ви требаат

Ресурси и референци

Сè уште нема ресурси.

Датотеки📁

Технички лист (pdf)

Fritzing датотека