#include <Servo.h>
#define TRIG_PIN 2
#define ECHO_PIN 3
#define SERVO_PIN 9
Servo myServo;
long duration;
int distance;
int getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
return distance;
}
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
myServo.attach(SERVO_PIN);
myServo.write(90); // center
Serial.begin(9600);
}
void loop() {
int d = getDistance();
Serial.print("Distance: ");
Serial.println(d);
if (d < 20) {
// Obstacle detected → Turn right
myServo.write(150);
} else {
// Path clear → Go straight
myServo.write(90);
}
delay(200);
}
Loading
st-nucleo-c031c6
st-nucleo-c031c6