#define TRIG_PIN 5
#define ECHO_PIN 18
#define BUZZER 23
#define LED_HIJAU 19
#define LED_KUNING 21
#define LED_MERAH 22
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
// Mengirim gelombang ultrasonik
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Membaca lama pantulan
long duration = pulseIn(ECHO_PIN, HIGH);
// Menghitung jarak
float distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Matikan semua output dulu
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
noTone(BUZZER);
// Menentukan LED dan buzzer berdasarkan jarak
if (distance > 100) {
digitalWrite(LED_HIJAU, HIGH);
}
else if (distance >= 50) {
digitalWrite(LED_KUNING, HIGH);
}
else {
digitalWrite(LED_MERAH, HIGH);
tone(BUZZER, 1000);
}
delay(500);
}