#include Servo myservo; // create servo object to control a servo int servo_angle = 0; // variable to store the servo position #define SERVOPIN 16 // Recommended PWM GPIO pins on the ESP32 include 2,4,12-19,21-23,25-27,32-33 #define SERVO_LEFT 45 #define SERVO_RIGHT 135 #define SERVO_FORWARD 90 #define US_TRIG 12 #define US_ECHO 14 #define US_STOP_DISTANCE 10 long distance_forward_cm,distance_left_cm,distance_right_cm; void setup() { //Serial port Serial.begin(115200); //Ultra sonic pins pinMode(US_TRIG, OUTPUT); pinMode(US_ECHO, INPUT); //servo init myservo.attach(SERVOPIN); // attaches the servo on pin 18 to the servo object // using default min/max of 1000us and 2000us // different servos may require different min/max settings // for an accurate 0 to 180 sweep delay(1000); myservo.write(SERVO_FORWARD); // start looking forward delay(2000); myservo.write(SERVO_LEFT); // start looking forward delay(2000); myservo.write(SERVO_FORWARD); // start looking forward delay(2000); myservo.write(SERVO_RIGHT); // start looking forward delay(2000); myservo.write(SERVO_FORWARD); // start looking forward } void loop() { distance_forward_cm = measure_distance_cm(); // measure the distance in front of us if(distance_forward_cm distance_right_cm){ // goto to the left for(int pos = SERVO_FORWARD;pos>SERVO_LEFT;pos--){ myservo.write(pos); delay(15); } } else{ // goto to the right for(int pos = SERVO_FORWARD;pos