#include <Servo.h>
#define TRIG_PIN 9
#define ECHO_PIN 10
Servo motor1;
Servo motor2;
#define MOTOR_PIN_1 3
#define MOTOR_PIN_2 5
#define PWM_MAX_SPEED 255
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
motor1.attach(MOTOR_PIN_1);
motor2.attach(MOTOR_PIN_2);
motor1.write(0);
motor2.write(0);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = (duration * 0.034) / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 15) {
motor1.write(0);
motor2.write(0);
} else if (distance >= 15 && distance <= 30) {
motor1.write(90);
motor2.write(0);
} else {
int pwmValue = map(distance, 30, 100, 100, PWM_MAX_SPEED);
pwmValue = constrain(pwmValue, 0, PWM_MAX_SPEED);
motor1.write(pwmValue);
motor2.write(pwmValue);
}
delay(500);
}