const int trigPin = 15; // Pin trigger sensor ultrasonik
const int echoPin = 2; // Pin echo sensor ultrasonik
const int ledPin1 = 17; // Pin LED 1
const int ledPin2 = 5; // Pin LED 2
const int ledPin3 = 18; // Pin LED 3
const int ledPin4 = 19; // Pin LED 4
const int buzzerPin = 22; // Pin buzzer
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// Matikan semua LED dan buzzer saat inisialisasi
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(buzzerPin, LOW);
Serial.begin(9600);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Logika untuk mengatur LED dan buzzer sesuai dengan jarak
if (distance > 300) {
activateLED(4);
activateBuzzer();
} else if (distance > 200) {
activateLED(3);
} else if (distance > 100) {
activateLED(2);
} else if (distance > 50) {
activateLED(1);
} else {
activateLED(0);
}
delay(500);
}
void activateLED(int numLEDs) {
digitalWrite(ledPin1, numLEDs >= 1 ? HIGH : LOW);
digitalWrite(ledPin2, numLEDs >= 2 ? HIGH : LOW);
digitalWrite(ledPin3, numLEDs >= 3 ? HIGH : LOW);
digitalWrite(ledPin4, numLEDs >= 4 ? HIGH : LOW);
}
void activateBuzzer() {
tone(buzzerPin, 1000); // Frekuensi buzzer
delay(500); // Durasi bunyi buzzer
noTone(buzzerPin); // Matikan buzzer
}