#define TRIG_PIN 2
#define ECHO_PIN 3
#define LED1 4
#define LED2 5
long waktu, jarak;
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
waktu = pulseIn(ECHO_PIN, HIGH);
jarak = waktu * 0.034 / 2; // Menghitung jarak dalam cm
Serial.print("Jarak: ");
Serial.print(jarak);
Serial.println(" cm");
// Kondisi LED berdasarkan jarak
if (jarak >= 0 && jarak <= 10) {
digitalWrite(LED1, HIGH); // LED 1 menyala
digitalWrite(LED2, LOW); // LED 2 mati
}
else if (jarak > 10 && jarak <= 20) {
digitalWrite(LED1, LOW); // LED 1 mati
digitalWrite(LED2, HIGH); // LED 2 menyala
}
else if (jarak > 20 && jarak <= 30) {
digitalWrite(LED1, HIGH); // LED 1 menyala
digitalWrite(LED2, HIGH); // LED 2 menyala
}
else if (jarak > 30 && jarak <= 40) {
blinkLED(LED1, 500); // LED 1 berkedip setiap 500ms
digitalWrite(LED2, LOW); // LED 2 mati
}
else if (jarak > 40 && jarak <= 50) {
digitalWrite(LED1, LOW); // LED 1 mati
blinkLED(LED2, 500); // LED 2 berkedip setiap 500ms
}
else if (jarak > 50 && jarak <= 60) {
blinkLED(LED1, 500); // LED 1 berkedip setiap 500ms
blinkLED(LED2, 500); // LED 2 berkedip setiap 500ms
}
else {
digitalWrite(LED1, LOW); // Jika jarak di luar jangkauan, matikan kedua LED
digitalWrite(LED2, LOW);
}
delay(200);
}
void blinkLED(int ledPin, int interval) {
digitalWrite(ledPin, HIGH);
delay(interval / 2);
digitalWrite(ledPin, LOW);
delay(interval / 2);
}