Search Code

আরডুইনো কোড এবং HC-SR04 আল্ট্রাসনিক দূরত্ব সেন্সরের জন্য ভিডিও

আরডুইনো কোড এবং HC-SR04 আল্ট্রাসনিক দূরত্ব সেন্সরের জন্য ভিডিও

এই টিউটোরিয়ালে, আমরা Arduino-এর সাথে HC-SR04 আল্ট্রাসনিক দূরত্ব সেন্সর কীভাবে ব্যবহার করতে হয় তা অন্বেষণ করব। HC-SR04 হল আল্ট্রাসনিক তরঙ্গ ব্যবহার করে দূরত্ব পরিমাপের একটি সাশ্রয়ী এবং কার্যকর উপায়। একটি সংকেত পাঠিয়ে এবং প্রতিধ্বনি ফিরে আসতে যে সময় লাগে তা পরিমাপ করে, আমরা নির্ভুলভাবে কোনো বস্তুর দূরত্ব গণনা করতে পারি।

How HC-SR04 ulrasonic sensor work

এই প্রকল্পে Arduino-এর সাথে সেন্সর সংযোগ স্থাপন এবং দূরত্ব পরিমাপ পড়া ও প্রদর্শনের জন্য একটি সহজ প্রোগ্রাম লেখা জড়িত। প্রোগ্রামটি সেন্সরের সাথে যোগাযোগ সহজ করতে NewPing লাইব্রেরি ব্যবহার করবে। যদি আপনি কোনো ধাপে ভিজ্যুয়াল রেফারেন্স বা আরও স্পষ্টীকরণ চান, তাহলে ভিডিওটি দেখতে ভুলবেন না (ভিডিওতে 00:00 সময়ে)।

হার্ডওয়্যার ব্যাখ্যা

HC-SR04 আল্ট্রাসনিক সেন্সর দুটি প্রধান উপাদান নিয়ে গঠিত: একটি ট্রান্সমিটার এবং একটি রিসিভার। ট্রান্সমিটার মানুষের শ্রবণ সীমার উপরে কম্পাঙ্কে আল্ট্রাসনিক স্পন্দন নির্গত করে, যখন রিসিভার কোনো বস্তু থেকে প্রতিফলিত হওয়ার পর সেই স্পন্দনগুলির প্রতিধ্বনি শোনে। স্পন্দন পাঠানো এবং প্রতিধ্বনি গ্রহণের মধ্যে সময় গণনা করে, আমরা বস্তুর দূরত্ব নির্ধারণ করতে পারি।

সেন্সরটির দুটি অপরিহার্য পিন রয়েছে: ট্রিগার পিন এবং ইকো পিন। ট্রিগার পিনটি একটি সংক্ষিপ্ত উচ্চ সংকেত পাঠিয়ে পরিমাপ শুরু করতে ব্যবহৃত হয়, যখন ইকো পিন প্রতিফলিত সংকেত গ্রহণ করে এবং প্রতিধ্বনি ফিরে আসতে যে সময় লাগে তা পরিমাপ করে।

ডেটাশিট বিবরণ

নির্মাতাHC-SR04
পার্ট নম্বরHC-SR04
লজিক/আইও ভোল্টেজ5 V
সাপ্লাই ভোল্টেজ5 V
আউটপুট কারেন্ট (প্রতি চ্যানেল)15 mA
পিক কারেন্ট (প্রতি চ্যানেল)20 mA
PWM ফ্রিকোয়েন্সি নির্দেশিকাN/A
ইনপুট লজিক থ্রেশহোল্ড0.3 V (নিম্ন), 0.7 V (উচ্চ)
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশনN/A
থার্মাল সীমা0°C থেকে 70°C
প্যাকেজমডিউল
নোট / ভেরিয়েন্টসর্বোচ্চ পরিসীমা 400 সেমি

  • সঠিক পাওয়ার সাপ্লাই (5 V) নিশ্চিত করুন।
  • সঠিক রিডিংয়ের জন্য সেন্সরটি পরিষ্কার রাখুন।
  • পরিমাপ শুরু করতে ট্রিগার পিন ব্যবহার করুন।
  • নির্ভরযোগ্য ফলাফলের জন্য সর্বোচ্চ দূরত্ব অতিক্রম করবেন না।
  • আল্ট্রাসনিক তরঙ্গ প্রতিফলিত হওয়ার জন্য একটি পরিষ্কার পথ বজায় রাখুন।
  • পাওয়ার সাপ্লাই পিনের কাছে ডিকপলিং ক্যাপাসিটর ব্যবহার করুন।
  • পারিপার্শ্বিক শব্দ সম্পর্কে সতর্ক থাকুন যা রিডিংয়ে হস্তক্ষেপ করতে পারে।
  • সেন্সরের সাথে পরিচিত হতে বিভিন্ন দূরত্ব পরীক্ষা করুন।

ওয়্যারিং নির্দেশাবলী

Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor

HC-SR04 আল্ট্রাসনিক সেন্সরটি আপনার Arduino-এর সাথে সংযোগ করতে, এই ধাপগুলি অনুসরণ করুন:

  • HC-SR04-এর VCC পিনটি Arduino-এর 5V পিনের সাথে সংযুক্ত করুন।
  • HC-SR04-এর GND পিনটি Arduino-এর একটি গ্রাউন্ড পিনের সাথে সংযুক্ত করুন।
  • HC-SR04-এর TRIG পিনটি (যা সাধারণত নীল হয়) Arduino-এর ডিজিটাল পিন 12-এর সাথে সংযুক্ত করুন।
  • HC-SR04-এর ECHO পিনটি (যা সাধারণত সবুজ হয়) Arduino-এর ডিজিটাল পিন 11-এর সাথে সংযুক্ত করুন।

বিরতিহীন রিডিং এড়াতে সংযোগগুলি নিরাপদ কিনা তা নিশ্চিত করুন। যদি আপনি একটি ভিন্ন সেটআপ ব্যবহার করেন বা বিকল্প ওয়্যারিং থাকে, তাহলে অতিরিক্ত নির্দেশনার জন্য ভিডিওটি দেখুন (ভিডিওতে 00:00 সময়ে)।

কোড উদাহরণ ও ওয়াকথ্রু

নিম্নলিখিত কোডটি NewPing লাইব্রেরি আরম্ভ করে এবং HC-SR04 সেন্সরের জন্য পিন সেট আপ করে। প্রধান উপাদানগুলির মধ্যে ট্রিগার এবং ইকো পিন সংজ্ঞায়িত করা, সেইসাথে সর্বোচ্চ দূরত্ব অন্তর্ভুক্ত।

#define TRIGGER_PIN  12  // ট্রিগার পিন
#define ECHO_PIN     11  // ইকো পিন
#define MAX_DISTANCE 200  // সর্বোচ্চ দূরত্ব সেমিতে

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing সেট আপ করুন

এই অংশে, TRIGGER_PIN এবং ECHO_PIN যথাক্রমে ডিজিটাল পিন 12 এবং 11-এ সেট করা হয়েছে। MAX_DISTANCE 200 সেমি হিসাবে সংজ্ঞায়িত করা হয়েছে, যা আপনি পরিমাপ করতে আগ্রহী সর্বোচ্চ দূরত্ব।

এরপর, আমাদের সেটআপ ফাংশন রয়েছে যেখানে ফলাফল প্রদর্শনের জন্য সিরিয়াল মনিটর আরম্ভ করা হয়:

void setup() {
  Serial.begin(115200); // সিরিয়াল মনিটর আরম্ভ করুন
}

এই কোডটি 115200 বড রেটে সিরিয়াল যোগাযোগ খোলে, যা আমাদের সিরিয়াল মনিটরে দূরত্ব পরিমাপ দেখতে দেয়।

অবশেষে, লুপ ফাংশনটি দূরত্ব পরিমাপ করে এবং এটি 12 সেমি বা তার কম কিনা তা পরীক্ষা করে:

void loop() {
  delay(50); // পিংগুলির মধ্যে অপেক্ষা করুন
  int distance = sonar.ping_cm(); // দূরত্ব পরিমাপ করুন
  if(distance <=12){ // দূরত্ব পরীক্ষা করুন
    Serial.println("খুব কাছাকাছি"); // খুব কাছাকাছি হলে প্রিন্ট করুন
  }
}

loop()-এ, আমরা পরিমাপের ফ্রিকোয়েন্সি নিয়ন্ত্রণ করতে ৫০ মিলিসেকেন্ডের একটি বিলম্ব প্রবর্তন করি। দূরত্ব পরিমাপ করা হয়, এবং যদি এটি ১২ সেন্টিমিটারের কম বা সমান হয়, তবে এটি সিরিয়াল মনিটরে "খুব কাছাকাছি" প্রিন্ট করে।

সম্পূর্ণ কোডের জন্য, অনুগ্রহ করে নিবন্ধের নীচের লোডিং বিভাগটি দেখুন।

প্রদর্শন / কী আশা করবেন

আপনি যখন প্রোগ্রামটি চালান, Arduino নিকটতম বস্তুর দূরত্ব ক্রমাগত পরিমাপ করবে। এটি সেন্টিমিটারে দূরত্ব প্রিন্ট করবে এবং যখন ১২ সেন্টিমিটারের মধ্যে একটি বস্তু শনাক্ত হবে তখন আপনাকে "খুব কাছাকাছি" দিয়ে অবহিত করবে। যদি বস্তুটি খুব কাছাকাছি থাকে, তবে আপনি ভুল রিডিং বা কোনো রিডিংই নাও পেতে পারেন, যেমনটি ভিডিওতে উল্লেখ করা হয়েছে (ভিডিওতে ১০:০০ মিনিটে)।

নিশ্চিত করুন যে সেন্সরটি সঠিকভাবে অবস্থান করছে এবং অতিস্বনক তরঙ্গগুলিকে বাধা দিচ্ছে এমন কোনো বাধা নেই। যদি সবকিছু সঠিকভাবে সেট আপ করা হয়, তবে আপনি সিরিয়াল মনিটরে ধারাবাহিক পরিমাপ প্রদর্শিত দেখতে পাবেন।

ভিডিও টাইমস্ট্যাম্প

  • ০০:০০ - HC-SR04-এর পরিচিতি
  • ০১:৩০ - সেন্সর ওয়্যারিং
  • ০৩:০০ - কোডের ওভারভিউ
  • ০৫:০০ - প্রোগ্রাম চালানো
  • ০৭:৩০ - দূরত্ব পরিমাপ

ছবি

Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
42-This is the Arduino code for the HC-SR04 ultrasonic distance sensor.
ভাষা: C++
/*
 * This is the Arduino code for the HC-SR04 Ultrasonic Distance Sensor
 * to measure the distance using Arduino for a robotic car and other applications
 * Watch the video https://youtu.be/QI9541YQq7M
 * 
 * Written by Ahmad Shamshiri for Robojax Video
 * Date: December 21, 2017, 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.
 * 
 */

/* Original Code 
// https://playground.arduino.cc/Code/NewPing
 * Modified for Robojax video on December 21, 2017

 */

// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------

#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
  delay(50);                     // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
  int distance = sonar.ping_cm();// store the distance value in "distance" variable
  if(distance <=12){             // if distance is less than 12, do something. For example, here just print "very close"
    Serial.println("Very close");
  }
}

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

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

ফাইলসমূহ📁

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