কোড অনুসন্ধান

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 মি
অপারেটিং তাপমাত্রা-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
}

আপনাকে যা প্রয়োজন হতে পারে

সম্পদ ও রেফারেন্সসমূহ

এখনো কোনো সম্পদ নেই।

ফাইলসমূহ📁

কোনো ফাইল উপলব্ধ নেই।