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

Користење на HC-SR501 сензор за движење со реле и Arduino код

Користење на HC-SR501 сензор за движење со реле и Arduino код

Во ова упатство, ќе истражиме како да го користиме сензорот за движење HC-SR501 заедно со реле за контрола на AC сијалица или друг тип на оптоварување користејќи Arduino. HC-SR501 е инфрацрвен сензор за движење кој може да детектира движење до 7 метри подалеку, што го прави идеален за различни апликации како што се безбедносни аларми или системи за автоматско осветлување. Со користење на овој сензор и реле, можете да креирате проект кој ја вклучува светлината кога ќе се детектира движење.

Ќе обезбедиме чекор-по-чекор водич за поставување на хардверот, инструкции за поврзување и Arduino кодот потребен за постигнување на оваа функционалност. За појасно разбирање на процесот, задолжително погледнете го придружното видео (во видео на 00:00).

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

Примарните компоненти во овој проект вклучуваат сензор за движење HC-SR501, модул за реле и Arduino плоча. Сензорот HC-SR501 има три пина: VCC, GND и OUT. Пинот VCC се поврзува со извор на напојување (5V), пинот GND се поврзува со земја, а пинот OUT испраќа сигнал до Arduino кога ќе се детектира движење.

Модулот за реле дејствува како прекинувач кој може да контролира уреди со висок напон. Има три главни пина: COM (заеднички), NO (нормално отворен) и NC (нормално затворен). Во ова поставување, ќе го користиме пинот NO, кој се поврзува со оптоварувањето кога релето е активирано. Ова му овозможува на Arduino да го контролира релето врз основа на сигналот примен од сензорот за движење.

Детали од техничката спецификација

ПроизводителHC-SR501
Број на делHC-SR501
Логички/IO напон5 V
Напон на напојување5–20 V
Потрошувачка на енергија65 mA
Агол на детекција120 степени
Растојание на детекција3–7 m
Работна температура-15 до 70 °C
Тип на излезДигитален
ПакетМодул

  • Обезбедете соодветно напојување (5–20 V) за сензорот.
  • Прилагодете го потенциометарот за чувствителност за оптимален опсег на детекција.
  • Користете го пинот NO на релето за ефикасна контрола на оптоварувањето.
  • Бидете внимателни со номиналната струја на релето (макс. 10 A).
  • Тестирајте го опсегот на детекција на сензорот за движење пред финалната инсталација.
  • Размислете за дисипација на топлина ако го користите релето за високи оптоварувања.

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

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

За да ги поврзете сензорот за движење HC-SR501 и релето со Arduino, започнете со поврзување на пинот VCC од сензорот за движење со пинот 5V на Arduino. Потоа, поврзете го пинот GND од сензорот со еден од пиновите GND на Arduino. Пинот OUT од сензорот за движење треба да се поврзе со дигиталниот пин 2 на Arduino.

За модулот за реле, поврзете го пинот VCC со пинот 5V на Arduino и пинот GND со земја. Влезниот пин (често означен како IN или слично) на релето треба да се поврзе со дигиталниот пин 4 на Arduino. Проверете ја ориентацијата на релето за да се осигурате дека е поставено на нормално отворен (NO) за ова поставување. Конечно, поврзете го оптоварувањето (на пр., AC сијалица) со релето според спецификациите на релето, осигурувајќи се дека врските се безбедни.

Примери на код и објаснување

Во Arduino кодот, дефинираме константи за пиновите на сензорот и релето. Пинот на сензорот е поставен на SENSOR_PIN, кој е доделен на дигиталниот пин 2, а пинот на релето е поставен на RELAY_PIN, доделен на дигиталниот пин 4. Оваа конфигурација ни овозможува да го читаме излезот на сензорот и соодветно да го контролираме релето.

const int SENSOR_PIN = 2; // пинот на Arduino поврзан со излезот на сензорот
const int RELAY_PIN = 4; // пинот на Arduino кој е поврзан за контрола на релето

Во функцијата setup(), го иницијализираме серискиот монитор за дебагирање и ги поставуваме режимите на пиновите за сензорот и релето. Ова осигурува дека Arduino знае кои пинови се влезови, а кои излези.

void setup() {
  Serial.begin(9600); // поставување на Serial Monitor за прикажување информации
  pinMode(SENSOR_PIN, INPUT); // Дефинирање на SENSOR_PIN како влез од сензорот
  pinMode(RELAY_PIN, OUTPUT); // Дефинирање на RELAY_PIN како излез за релето
}

Во функцијата loop(), континуирано ја проверуваме состојбата на сензорот за движење. Ако е детектирано движење, печатиме порака на серискиот монитор и го вклучуваме релето со поставување на ниско ниво. Ако не е детектирано движење, печатиме друга порака и го исклучуваме релето со поставување на високо ниво.

void loop() {
  int motion = digitalRead(SENSOR_PIN); // читање на пинот на сензорот
  if (motion) {
    Serial.println("Детектирано движење");
    digitalWrite(RELAY_PIN, LOW); // Вклучување на релето
  } else {
    Serial.println("===Ништо не се движи");
    digitalWrite(RELAY_PIN, HIGH); // Исклучување на релето
  }
  delay(500);
}

Демонстрација / Што да очекувате

Кога сензорот за движење ќе детектира движење, релето ќе се активира, овозможувајќи проток на енергија до поврзаното оптоварување, како што е AC сијалица. Треба да видите дека сијалицата се вклучува веднаш по детекцијата на движење. Ако сензорот не детектира никакво движење, сијалицата ќе остане исклучена. Имајте предвид дека поставките за чувствителност на сензорот ќе влијаат на неговиот опсег на детекција, па може да бидат потребни прилагодувања за оптимални перформанси (во видео на 05:00).

Вообичаени грешки вклучуваат неправилно поврзување или надминување на струјните ограничувања на релето, што може да доведе до дефект. Осигурете се дека сите врски се безбедни и тестирајте го поставувањето во контролирана средина пред финална употреба.

Временски ознаки на видеото

  • 00:00 Почеток
  • 00:35 Објаснет хардвер
  • 04:35 Моќност на релето
  • 06:00 Објаснето поврзување
  • 07:53 Објаснет Arduino код
  • 09:48 Демонстрација на овој проект

Слики

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
141-Arduino source code for an HC-SR501 motion sensor to control an AC bulb or load
Јазик: C++
/*
 * This Arduino code uses an HS-SR501 motion sensor and a relay
 * and switches an alarm or a device using the relay when motion is detected.
 * The device can be an alarm, a light, or any other device.
 *

 * Written by Ahmad Shamshiri on August 5, 2018, at 12:36 PM for Robojax.com
 * in Ajax, Ontario, Canada
 * Watch the video instruction for this code: https://youtu.be/QQ7iDagQnQM
 * This code has been downloaded from Robojax.com

 */

const int SENSOR_PIN = 2;// the Arduino pin connected to the output (middle) wire of the sensor
const int RELAY_PIN = 4;// the Arduino pin which is connected to control the relay

void setup() {
  Serial.begin(9600);// setup Serial Monitor to display information
   Serial.println("Robojax Arduino Tutorial");
   Serial.println("HC-SR501 sensor with relay");
  pinMode(SENSOR_PIN, INPUT);// Define SENSOR_PIN as Input from sensor
  pinMode(RELAY_PIN, OUTPUT);// Define RELAY_PIN as OUTPUT for relay
}

void loop() {
  // Robojax.com HC-SR501 motion sensor tutorial August 5, 2018
  int motion =digitalRead(SENSOR_PIN);// read the sensor pin and stores it in "motion" variable
 
  // if motion is detected
  if(motion){
    Serial.println("Motion detected");
    digitalWrite(RELAY_PIN, LOW);// Turn the relay ON
  }else{
     Serial.println("===Nothing moves");
     digitalWrite(RELAY_PIN,HIGH);// Turn the relay OFF
  }
  delay(500);
  // Robojax.com HC-SR501 motion sensor tutorial August 5, 2018
}

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

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

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

Датотеки📁

Нема достапни датотеки.