// Tentukan pin untuk sensor HC-SR04
#define TRIGGER_PIN 9 // Pin trigger (pengirim gelombang ultrasonik)
#define ECHO_PIN 10 // Pin echo (penerima pantulan gelombang)
// Variabel untuk menyimpan lama waktu pantulan (dalam microsecond)
long duration;
// Variabel untuk menyimpan hasil jarak (dalam cm)
int distance;
void setup() {
// Atur TRIGGER_PIN sebagai OUTPUT (kita kirim sinyal)
pinMode(TRIGGER_PIN, OUTPUT);
// Atur ECHO_PIN sebagai INPUT (kita baca sinyal pantulan)
pinMode(ECHO_PIN, INPUT);
// Aktifkan komunikasi Serial untuk menampilkan hasil di Serial Monitor
Serial.begin(9600);
}
void loop() {
// Pastikan TRIG awalnya LOW sebentar (reset kondisi)
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
// Kirim pulsa HIGH selama 10 microsecond ke pin TRIG
// -> sensor memancarkan gelombang ultrasonik
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
// Baca lama waktu (dalam microsecond) pin ECHO menerima pantulan
duration = pulseIn(ECHO_PIN, HIGH);
// Hitung jarak (cm)
// Rumus: jarak = (durasi * kecepatan suara) / 2
// Kecepatan suara = 0.034 cm per microsecond
distance = duration * 0.034 / 2;
// Tampilkan hasil ke Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Tunggu 0.5 detik sebelum pengukuran berikutnya
delay(500);
}