#include <ESP32Servo.h>
const int trigPin = 2; // Pin trigger ultrasonik
const int echoPin = 15; // Pin echo ultrasonik
Servo myservo; // Objek servo
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myservo.attach(12); // Hubungkan servo ke pin 2
}
void loop() {
long duration, distance;
// Mengirim pulsa ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima waktu pantulan
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu pantulan
distance = (duration / 2) / 29.1;
// Memutar servo berdasarkan jarak
if (distance < 200) {
// Jika jarak kurang dari 100 cm (1 meter), aktifkan servo ke sudut tertentu
myservo.write(45); // Contoh: Memutar servo ke sudut 45 derajat
Serial.println("Aktifkan servo karena jarak kurang dari 1 meter!");
} else {
// Jika jarak di luar rentang, berhenti atau lakukan sesuatu yang sesuai
myservo.write(90); // Berhenti di tengah
Serial.println("Jarak di luar rentang!");
}
delay(500); // Delay untuk membatasi frekuensi pembacaan
}