Search Code

د HC-SR501 حرکت سینسر د ریلې او Arduino کوډ سره کارول

د HC-SR501 حرکت سینسر د ریلې او Arduino کوډ سره کارول

په دې ټیوټوریل کې به موږ وپلټو چې څنګه د HC-SR501 حرکت سینسر د ریلې سره په ګډه وکاروو ترڅو د AC بلب یا بل ډول بار د Arduino په کارولو سره کنټرول کړو. HC-SR501 یو انفراریډ حرکت سینسر دی چې کولی شي تر ۷ مترو پورې حرکت کشف کړي، چې دا د مختلفو غوښتنلیکونو لکه د امنیت الارمونو یا اتوماتیک رڼا سیسټمونو لپاره مثالی کوي. د دې سینسر او ریلې په کارولو سره، تاسو کولی شئ یو پروژه جوړه کړئ چې کله حرکت کشف شي نو رڼا روښانه کړي.

موږ به د هارډویر تنظیم، د تارونو د نښلولو لارښوونو، او د 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
د کشف زاویه۱۲۰ درجې
د کشف واټن3–7 m
د کار کولو تودوخه-15 to 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 پن د Arduino په 5V پن سره ونښلوئ. بیا، د سینسر د GND پن د Arduino په یو له GND پنونو سره ونښلوئ. د حرکت سینسر څخه د OUT پن باید د Arduino په ډیجیټل پن 2 سره ونښلول شي.

د ریلې ماډل لپاره، د VCC پن د Arduino په 5V پن سره او د GND پن د ځمکې سره ونښلوئ. د ریلې د انپټ پن (چې ډیری وخت IN یا ورته نښه لري) باید د Arduino په ډیجیټل پن 4 سره ونښلول شي. ډاډ ترلاسه کړئ چې د ریلې سمت وګورئ ترڅو ډاډ ترلاسه کړئ چې دا د دې تنظیم لپاره په معمولا خلاص (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); // د معلوماتو د ښودلو لپاره سریال مانیټر تنظیم کړئ
  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 بلب ته د بریښنا جریان اجازه ورکوي. تاسو باید وګورئ چې بلب د حرکت په کشف کیدو سره natدې شیبه روښانه کیږي. که چیرې سینسر کوم حرکت ونه کشف کړي، بلب به بند پاتې شي. په یاد ولرئ چې د سینسر د حساسیت تنظیمات به د هغې د کشف حد اغیزمن کړي، نو د غوره فعالیت لپاره ممکن سمونونه اړین وي (په ویډیو کې په 05:00).

عامې ستونزې د غلط تارونو نښلول یا د ریلې د اوسني حد څخه زیاتوالی شامل دي، کوم چې کولی شي ناکامۍ ته لاره هواره کړي. ډاډ ترلاسه کړئ چې ټولې اړیکې خوندي دي او د وروستي کارونې دمخه په کنټرول شوي چاپیریال کې تنظیم ازموئ.

د ویډیو وخت نښې

  • 00:00 پیل
  • 00:35 د هارډویر تشریح
  • 04:35 د ریلې بریښنا درجه
  • 06:00 د تارونو تشریح
  • 07:53 د آردوینو کوډ تشریح
  • 09:48 د دې پروژې ننداره

Images

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
Language: 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
}

Resources & references

No resources yet.

Files📁

No files available.