کوڈ تلاش کریں

HC-SR501 موشن سینسر کو ریلے اور آرڈوینو کوڈ کے ساتھ استعمال کرنا

HC-SR501 موشن سینسر کو ریلے اور آرڈوینو کوڈ کے ساتھ استعمال کرنا

اس ٹیوٹوریل میں، ہم دریافت کریں گے کہ 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
لاجک/آئی او وولٹیج5 V
سپلائی وولٹیج5–20 V
پاور کنزمپشن65 mA
ڈیٹیکشن اینگل120 ڈگری
ڈیٹیکشن فاصلہ3–7 میٹر
آپریٹنگ درجہ حرارت-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 پن کو 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 بلب تک بجلی پہنچ سکے گی۔ آپ کو حرکت کا پتہ چلتے ہی بلب فوراً آن ہوتا نظر آنا چاہیے۔ اگر سینسر کوئی حرکت نہیں پاتا، تو بلب بند رہے گا۔ آگاہ رہیں کہ سینسر کی حساسیت کی سیٹنگز اس کی ڈیٹیکشن رینج کو متاثر کریں گی، لہذا بہترین کارکردگی کے لیے ایڈجسٹمنٹ ضروری ہو سکتی ہے (ویڈیو میں 05:00 پر)۔

عام مسائل میں غلط وائرنگ یا ریلے کی کرنٹ حد سے تجاوز شامل ہے، جو ناکامی کا باعث بن سکتا ہے۔ حتمی استعمال سے پہلے تمام کنکشنز کو محفوظ بنائیں اور سیٹ اپ کو کنٹرولڈ ماحول میں جانچیں۔

ویڈیو ٹائم اسٹیمپس

  • 00:00 آغاز
  • 00:35 ہارڈویئر کی وضاحت
  • 04:35 ریلے پاور ریٹنگ
  • 06:00 وائرنگ کی وضاحت
  • 07:53 آرڈوینو کوڈ کی وضاحت
  • 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
}

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

وسائل اور حوالہ جات

ابھی تک کوئی وسائل نہیں۔

فائلیں📁

کوئی فائلیں دستیاب نہیں ہیں۔