// Pin untuk sensor ultrasonik
#define TRIG_PIN 4
#define ECHO_PIN 5
// Pin untuk LED indikator
#define LED1_PIN 6
#define LED2_PIN 2
#define LED3_PIN 3
void setup() {
// Inisialisasi pin sebagai output untuk LED
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
// Inisialisasi pin sebagai input untuk trigger dan echo
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Matikan pin trigger
digitalWrite(TRIG_PIN, LOW);
// Mulai serial untuk debugging
Serial.begin(9600);
}
void loop() {
// Mengirimkan sinyal ultrasonik
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Membaca waktu pantulan ultrasonik
unsigned long duration = pulseIn(ECHO_PIN, HIGH);
// Menghitung jarak berdasarkan waktu pantulan
unsigned long distance = (duration * 0.0343) / 2; // Dalam centimeter
// Menyalakan LED berdasarkan jarak yang terdeteksi
if (distance <= 10) {
digitalWrite(LED1_PIN, HIGH);
digitalWrite(LED2_PIN, LOW);
digitalWrite(LED3_PIN, LOW);
} else if (distance > 10 && distance <= 20) {
digitalWrite(LED1_PIN, LOW);
digitalWrite(LED2_PIN, HIGH);
digitalWrite(LED3_PIN, LOW);
} else if (distance > 20) {
digitalWrite(LED1_PIN, LOW);
digitalWrite(LED2_PIN, LOW);
digitalWrite(LED3_PIN, HIGH);
}
// Tampilkan jarak pada Serial Monitor (opsional, untuk debugging)
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Tunggu sebelum membaca ulang jarak
delay(100);
}