Ultrasonic Sensor Project with Arduino | বাংলা টিউটোরিয়াল
Ultrasonic Sensor Project with Arduino | বাংলা টিউটোরিয়াল
আপনি কি জানেন Ultrasonic Sensor চোখ ছাড়াই দূরত্ব মাপতে পারে?
আজকের ব্লগে আমরা শিখবো HC-SR04 Ultrasonic Sensor কিভাবে কাজ করে এবং কিভাবে Arduino দিয়ে Distance Measurement Project বানানো যায়। এছাড়াও দ্বিতীয় প্রোজেক্টে আমরা দেখবো কিভাবে LED + Buzzer ব্যবহার করে Distance Alert System বানানো যায়।
Ultrasonic Sensor কি?
Ultrasonic Sensor (HC-SR04) হলো এমন একটি সেন্সর যেটি 40 kHz ultrasonic wave ব্যবহার করে দূরত্ব মাপতে পারে।
Transmitter (T): Ultrasonic sound wave পাঠায়
Transmitter এর কাজ হচ্ছে 40kHz ultrasonic sound wave বের করে।এর ভেতরে একটা Piezoelectric Transducer থাকে, যেটা electrical signal → ultrasonic wave এ রূপান্তর করে। Transmitter পিনকে বলা হয় Trigger pin , Arduino বা অন্যান্য মাইক্রোকন্ট্রোলার থেকে আমরা Trigger pin এ 10 µs এর জন্য HIGH signal পাঠাই। তখন সেন্সর প্রায় 40 kHz এর 8 cycle pulse বাতাসে পাঠায়। এই সাউন্ড আমাদের কানে শোনা যায় না, কিন্তু বাতাসে প্রায় 343 m/s বেগে ছড়িয়ে পড়ে। এই বেগ নির্ভর করবে আপনার আসে পাসে থাকা তাপমাত্রার উপর। তাপমাত্রা বারলে বেগও বারবে।
Receiver (R): Object থেকে রিফ্লেক্ট হয়ে আসা ওয়েভ রিসিভ করে
Receiver এর কাজ হচ্ছে যদি সেই ultrasonic sound wave কোন বস্তুর সাথে ধাক্কা খেয়ে ফিরে আসে সেটা রিসিভ করা। এর ভেতরও আরেকটা Piezoelectric Transducer থাকে, যেটা ultrasonic wave → electrical signal এ রূপান্তর করে।
Formula:
🔹 Project 1: Arduino দিয়ে Ultrasonic Distance Measurement
Arduino UNO
HC-SR04 Ultrasonic Sensor
Jumper Wires
Breadboard
কোড (Arduino C++)
int TRIG = 9; // Trigger pin কে 9 নম্বর ডিজিটাল পিনে সেট করলাম
int ECHO = 10; // Echo pin কে 10 নম্বর ডিজিটাল পিনে সেট করলাম
void setup() {
pinMode(TRIG, OUTPUT); // TRIG পিন আউটপুট হবে
pinMode(ECHO, INPUT); // ECHO পিন ইনপুট হবে
Serial.begin(9600); // সিরিয়াল মনিটরে ডাটা দেখতে
}
void loop() {
long duration, distance;
// Trigger এ 10 µs pulse পাঠাতে হবে
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// Echo pin এ কত সময় লাগলো সেটা measure করবো
duration = pulseIn(ECHO, HIGH);
// সময় থেকে distance বের করবো (Speed of sound = 343 m/s)
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
🔗 Arduino Code + Circuit Diagram (Project 1)👇👇👇
🔹 Project 2: Ultrasonic Sensor + 3 LED + Buzzer Alert System
Arduino UNO
HC-SR04 Ultrasonic Sensor
3 × LED (Green, Yellow, Red)
3 × Resistor (220Ω)
Buzzer
Jumper Wires
Breadboard
কোড (Arduino C++)
const int trigPin = 9; // আলট্রাসনিক সেন্সরের ট্রিগার (Trig) পিন Arduino এর D9 এ যুক্ত
const int echoPin = 10; // আলট্রাসনিক সেন্সরের ইকো (Echo) পিন Arduino এর D10 এ যুক্ত
const int greenLed = 3; // সবুজ LED D3 এ যুক্ত
const int yellowLed = 4; // হলুদ LED D4 এ যুক্ত
const int redLed = 5; // লাল LED D5 এ যুক্ত
const int buzzer = 6; // বাজার D6 এ যুক্ত
long duration; // ইকো সিগন্যাল ফেরত আসতে যে সময় লাগছে (মাইক্রোসেকেন্ডে)
int distance; // হিসাব করে পাওয়া দূরত্ব (সেন্টিমিটারে)
void setup() {
pinMode(trigPin, OUTPUT); // Trig পিন আউটপুট হবে (সিগন্যাল পাঠানোর জন্য)
pinMode(echoPin, INPUT); // Echo পিন ইনপুট হবে (সিগন্যাল রিসিভ করার জন্য)
pinMode(greenLed, OUTPUT); // সবুজ LED আউটপুট
pinMode(yellowLed, OUTPUT); // হলুদ LED আউটপুট
pinMode(redLed, OUTPUT); // লাল LED আউটপুট
pinMode(buzzer, OUTPUT); // বাজার আউটপুট
Serial.begin(9600); // সিরিয়াল মনিটর চালু (দূরত্ব দেখানোর জন্য)
}
void loop() {
// আলট্রাসনিক সেন্সরের Trig পিনে ছোট্ট পালস পাঠানো হচ্ছে
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Echo পিনে কত সময় লাগলো সিগন্যাল ফিরে আসতে, তা মাপা হচ্ছে
duration = pulseIn(echoPin, HIGH);
// দূরত্ব হিসাব: (সময় × শব্দের বেগ)/2 → distance in cm
distance = duration * 0.034 / 2;
// সিরিয়াল মনিটরে দূরত্ব প্রিন্ট করা হচ্ছে
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// =======================
// LED + Buzzer Logic শুরু
// =======================
if (distance > 30) {
// নিরাপদ দূরত্ব → কেবল সবুজ LED জ্বলবে
digitalWrite(greenLed, HIGH);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, LOW);
digitalWrite(buzzer, LOW);
} else if (distance > 10 && distance <= 30) {
// মাঝারি দূরত্ব → হলুদ LED জ্বলবে + বাজার সিগনাল-সিগনাল বাজবে
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, HIGH);
digitalWrite(redLed, LOW);
digitalWrite(buzzer, HIGH); // বাজার অন
delay(200); // 200ms ধরে অন থাকবে
digitalWrite(buzzer, LOW); // বাজার বন্ধ
delay(200); // 200ms বন্ধ থাকবে
} else if (distance <= 10) {
// খুব কাছে (বিপদ জোন) → লাল LED জ্বলবে + বাজার একটানা বাজবে
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, HIGH);
digitalWrite(buzzer, HIGH);
}
delay(100); // প্রতিবার মাপার মাঝে ছোট্ট বিরতি
}
🔗 Arduino Code + Circuit Diagram (Project 2)👇👇👇