#define trigPin 9
#define echoPin 10
#define ledHijau 2
#define ledKuning 3
#define ledMerah 4
#define buzzerPin 5
long duration;
int distanceCm;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledMerah, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// mulai pengukuran
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distanceCm);
Serial.println(" cm");
// status LED dan buzzer
if (distanceCm > 100) { // Aman
digitalWrite(ledHijau, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
digitalWrite(buzzerPin, LOW);
}
else if (distanceCm > 30) { // Waspada
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, HIGH);
digitalWrite(ledMerah, LOW);
digitalWrite(buzzerPin, LOW);
}
else { // Kritis
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, HIGH);
digitalWrite(buzzerPin, HIGH);
}
delay(200);
}