// Mendefinisikan pin yang digunakan untuk sensor ultrasonik, buzzer, dan LED
const int trigPin = 9; // Pin Trig pada sensor ultrasonik terhubung ke pin digital 9
const int echoPin = 10; // Pin Echo pada sensor ultrasonik terhubung ke pin digital 10
const int buzzer = 8; // Buzzer terhubung ke pin digital 8
const int led = 7; // LED terhubung ke pin digital 7
void setup() {
pinMode(trigPin, OUTPUT); // Mengatur pin Trig sebagai output untuk mengirim sinyal
pinMode(echoPin, INPUT); // Mengatur pin Echo sebagai input untuk menerima sinyal pantulan
pinMode(buzzer, OUTPUT); // Mengatur pin buzzer sebagai output
pinMode(led, OUTPUT); // Mengatur pin LED sebagai output
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600 bps
}
void loop() {
long duration, distance; // Mendeklarasikan variabel untuk menyimpan durasi dan jarak
// Membersihkan pin Trig untuk memastikan tidak ada sinyal residual
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Mengirimkan sinyal ultrasonik dengan mengatur pin Trig HIGH selama 10 mikrodetik
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca durasi waktu yang dibutuhkan sinyal untuk kembali ke sensor melalui pin Echo
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan durasi sinyal (dalam centimeter)
distance = (duration / 2) / 29.1;
// Mengecek apakah jarak yang terdeteksi kurang dari 30 cm dan lebih dari 0 cm
if (distance < 30 && distance > 0) {
digitalWrite(buzzer, HIGH); // Mengaktifkan buzzer jika kondisi terpenuhi
digitalWrite(led, HIGH); // Mengaktifkan LED jika kondisi terpenuhi
} else {
digitalWrite(buzzer, LOW); // Mematikan buzzer jika tidak ada objek dalam jarak tertentu
digitalWrite(led, LOW); // Mematikan LED jika tidak ada objek dalam jarak tertentu
}
// Mencetak jarak yang terdeteksi ke monitor serial
Serial.print(distance);
Serial.println(" cm");
delay(500); // Menunggu selama 500 milidetik sebelum melakukan pengukuran berikutnya
}