cpp
 

// মোটরের পিন ডেফিনিশন (L298N Driver সংযোগ অনুযায়ী)
const int motorLeftForward = 9; // IN1
const int motorLeftBackward = 8; // IN2
const int motorRightForward = 10; // IN3
const int motorRightBackward = 11;// IN4

// আল্ট্রাসনিক সেন্সরের পিন
const int trigPin = A0;
const int echoPin = A1;

void setup() {
// মোটরের পিনগুলোকে OUTPUT হিসেবে সেট করা
pinMode(motorLeftForward, OUTPUT);
pinMode(motorLeftBackward, OUTPUT);
pinMode(motorRightForward, OUTPUT);
pinMode(motorRightBackward, OUTPUT);

// সেন্সরের পিন সেটআপ
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

Serial.begin(9600);
}

void loop() {
int distance = getDistance();

Serial.print(“Distance: “);
Serial.println(distance);

if (distance > 0 && distance < 20) {
// যদি সামনে ২০ সেমি এর মধ্যে বাধা থাকে
moveStop();
delay(300);
moveBackward();
delay(500);
moveStop();
delay(300);
turnRight();
delay(600); // ডানে ৯০ ডিগ্রি ঘোরার আনুমানিক সময় (প্রয়োজনীয় পরিবর্তন করতে পারেন)
moveStop();
delay(300);
} else {
// কোনো বাধা না থাকলে সামনে চলতে থাকবে
moveForward();
}

delay(50);
}

// দূরত্ব মাপার ফাংশন
int getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

long duration = pulseIn(echoPin, HIGH);
int cm = duration * 0.034 / 2;
return cm;
}

// রোবট কন্ট্রোল ফাংশনসমূহ
void moveForward() {
digitalWrite(motorLeftForward, HIGH);
digitalWrite(motorLeftBackward, LOW);
digitalWrite(motorRightForward, HIGH);
digitalWrite(motorRightBackward, LOW);
}

void moveBackward() {
digitalWrite(motorLeftForward, LOW);
digitalWrite(motorLeftBackward, HIGH);
digitalWrite(motorRightForward, LOW);
digitalWrite(motorRightBackward, HIGH);
}

void turnRight() {
digitalWrite(motorLeftForward, HIGH);
digitalWrite(motorLeftBackward, LOW);
digitalWrite(motorRightForward, LOW);
digitalWrite(motorRightBackward, HIGH);
}

void turnLeft() {
digitalWrite(motorLeftForward, LOW);
digitalWrite(motorLeftBackward, HIGH);
digitalWrite(motorRightForward, HIGH);
digitalWrite(motorRightBackward, LOW);
}

void moveStop() {
digitalWrite(motorLeftForward, LOW);
digitalWrite(motorLeftBackward, LOW);
digitalWrite(motorRightForward, LOW);
digitalWrite(motorRightBackward, LOW);
}