int TRIG = 25; // Pin digital untuk Trigger
int ECHO = 21; // Pin digital untuk Echo
// speed of sound --> kecepatan suara di udara (cm/µs)
float ss = 0.034;
// duration --> durasi waktu tempuh gelombang bolak-balik (µs)
long durn;
// distance in cm --> jarak dalam cm
float dist_cm;
// Fungsi ini hanya dijalankan sekali saat ESP32 dinyalakan
void setup() {
// Inisialisasi komunikasi serial (baudrate: 115200)
Serial.begin(115200);
// Inisialisasi pin Trigger sebagai Output (mengirim sinyal)
pinMode(TRIG, OUTPUT);
// Inisialisasi pin Echo sebagai Input (menerima sinyal)
pinMode(ECHO, INPUT);
}
// Fungsi ini dijalankan secara terus menerus saat ESP32 dinyalakan
void loop() {
// Memastikan Trigger dalam kondisi LOW sebelum mengirim sinyal
digitalWrite(TRIG, LOW);
// Tunda 2 mikrodetik
delayMicroseconds(2);
// Mengirim sinyal HIGH ke Trigger untuk memicu sensor
digitalWrite(TRIG, HIGH);
// Tunda 10 mikrodetik
delayMicroseconds(10);
// Mengembalikan Trigger ke LOW setelah mengirim sinyal
digitalWrite(TRIG, LOW);
// Mengukur durasi sinyal HIGH pada pin Echo
durn = pulseIn(ECHO, HIGH);
// Menghitung jarak:
// waktu DIKALI kecepatan suara DIBAGI 2 (karena pergi-pulang)
dist_cm = durn * ss / 2;
// Cetak di Serial Monitor: distance =
Serial.print("distance = ");
// Cetak nilai jarak dalam cm di Serial Monitor
Serial.println(dist_cm);
delay(500); // Tunda 500 ms sebelum dilakukan pengukuran berikutnya
}