// Pin koneksi
const int trigPin = 9; // Pin TRIG sensor ultrasonic
const int echoPin = 10; // Pin ECHO sensor ultrasonic
const int ledPin = 7; // Pin LED
const int buzzerPin = 6; // Pin Buzzer
long duration; // Waktu yang dibutuhkan untuk sinyal ultrasonik kembali
int distance; // Jarak objek dalam cm
void setup() {
pinMode(trigPin, OUTPUT); // TRIG sebagai output
pinMode(echoPin, INPUT); // ECHO sebagai input
pinMode(ledPin, OUTPUT); // LED sebagai output
pinMode(buzzerPin, OUTPUT); // Buzzer sebagai output
// Inisialisasi serial monitor
Serial.begin(9600);
}
void loop() {
// Mengirimkan sinyal ultrasonik
digitalWrite(trigPin, LOW); // Pastikan TRIG dimulai dari kondisi LOW
delayMicroseconds(2); // Tunggu sebentar
digitalWrite(trigPin, HIGH); // Kirim sinyal TRIG selama 10 mikrodetik
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca sinyal dari sensor (dalam bentuk durasi)
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan durasi
distance = duration * 0.034 / 2;
// Tampilkan jarak di serial monitor (untuk debugging)
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Jika ada objek lebih dekat dari 10 cm
if (distance <= 10) {
// Nyalakan buzzer
tone(buzzerPin, 1000); // Aktifkan buzzer
// Berkedip selama 10 detik
unsigned long startTime = millis(); // Waktu mulai
while (millis() - startTime < 10000) { // Selama 10 detik
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(250); // Tunggu 250 milidetik
digitalWrite(ledPin, LOW); // Matikan LED
delay(250); // Tunggu 250 milidetik
}
// Matikan buzzer setelah 10 detik
noTone(buzzerPin);
} else {
// Pastikan LED dan buzzer mati jika tidak ada objek
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
}
delay(500); // Jeda sebentar sebelum membaca lagi
}