const int trigPin = 13; // Pin Trig pada HC-SR04
const int echoPin = 12; // Pin Echo pada HC-SR04
const int yellowLedPin = 10; // Pin untuk lampu LED kuning
const int redLedPin = 9; // Pin untuk lampu LED merah
const int greenLedPin = 7;
const int buzzerPin = 8; // Pin untuk buzzer
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode (greenLedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
long duration, distance;
// Kirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Baca waktu echo
duration = pulseIn(echoPin, HIGH);
// Hitung jarak
distance = duration * 0.034 / 2;
// Tampilkan hasil di Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Atur lampu dan buzzer berdasarkan jarak
if (distance > 40) {
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
noTone(buzzerPin);
} else if (distance > 30) {
digitalWrite(yellowLedPin, HIGH);
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, LOW);
noTone(buzzerPin);
} else if (distance > 10) {
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
noTone(buzzerPin);
} else {
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
tone(buzzerPin, 1000);
}
delay(200); // Tunggu satu detik sebelum mengukur lagi
}