const int trigPin = 2; // Pin trigger ultrasonik
const int echoPin = 3; // Pin echo ultrasonik
const int ledPin = 13; // Pin LED
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Mengirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima waktu pantulan ultrasonik
long duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu pantulan
int distance = duration * 0.034 / 2;
// Menyalakan LED berdasarkan jarak
if (distance >= 10 && distance <= 29) {
for (int i = 0; i < 2; i++) {
digitalWrite(ledPin, HIGH);
delay(500); // LED menyala selama 0.5 detik, dua kali jika jarak 1-4
digitalWrite(ledPin, LOW);
delay(500);
}
} else if (distance >= 30 && distance <= 40) {
digitalWrite(ledPin, HIGH);
delay(1000); // LED menyala selama 1 detik jika jarak 5-9
digitalWrite(ledPin, LOW);
} else {
digitalWrite(ledPin, LOW); // Matikan LED jika jarak tidak sesuai
}
// Menampilkan jarak pada Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000); // Delay untuk mengurangi frekuensi pembacaan
}