// Deklarasi nama dan pin yang digunakan
int echoPin = 1;
int trigPin = 2;
int ledM = 12;
int ledK = 11;
int ledH = 10;
void setup() {
// Pengaturan mode pin untuk input dan output
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(ledH, OUTPUT);
pinMode(ledK, OUTPUT);
pinMode(ledM, OUTPUT);
}
float ultrasonik(){
//Fungsi ultrasonik untuk mengukur jarak dari sensor ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds (2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(18);
digitalWrite(trigPin, LOW);
int durasiPantulan = pulseIn(echoPin, HIGH);
// Perhitungan jarak berdasarkan durasi pantulan suara
return durasiPantulan * 0.034 / 2;
}
void loop() {
// Perulangan untuk memeriksa jarak dan kontrol LED berdasarkan jarak
float jarak = ultrasonik();
// Menyalakan LED hijau jika jarak lebih besar dari 100cm
if (jarak>100) {
digitalWrite(ledH, HIGH);
digitalWrite(ledK, LOW);
digitalWrite(ledM, LOW);
}
// Menyalakan LED kuning jika jarak diantara 100cm dan 50cm
else if ((jarak<=100) && (jarak>=50)) {
digitalWrite(ledH, LOW);
digitalWrite(ledK, HIGH);
digitalWrite(ledM, LOW);
}
// Menyalakan LED merah jika jarak lebih kecil dari 50cm
else if (jarak<50) {
digitalWrite(ledH, LOW);
digitalWrite(ledK, LOW);
digitalWrite(ledM, HIGH);
}
// Mematikan semua LED apabila 3 kondisi diatas tidak terpenuhi
else {
digitalWrite(ledH, LOW);
digitalWrite(ledK, LOW);
digitalWrite(ledM, LOW);
}
}