#define TrigPin 13 // Pin trig sensor ultrasonic
#define EchoPin 12 // Pin echo sensor ultrasonic
#define LEDredPin 11 // Pin LED merah
#define LEDyellowPin 10 // Pin LED kuning
#define LEDgreenPin 9 // Pin LED hijau
#define BuzzerPin 8 // Pin Buzzer
void setup() {
pinMode(TrigPin, OUTPUT); // Atur TrigPin sebagai OUTPUT
pinMode(EchoPin, INPUT); // Atur EchoPin sebagai INPUT
pinMode(LEDredPin, OUTPUT); // Atur LEDredPin sebagai OUTPUT
pinMode(LEDyellowPin, OUTPUT); // Atur LEDyellowPin sebagai OUTPUT
pinMode(LEDgreenPin, OUTPUT); // Atur LEDgreenPin sebagai OUTPUT
pinMode(BuzzerPin, OUTPUT); // Atur BuzzerPin sebagai OUTPUT
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
}
void loop() {
long duration, distance; // Variabel untuk menyimpan durasi dan jarak
// Mengirim sinyal dari sensor ultrasonik
digitalWrite(TrigPin, LOW); // Mengatur TrigPin ke LOW
delayMicroseconds(2); // Tunggu 2 mikrodetik
digitalWrite(TrigPin, HIGH); // Mengatur TrigPin ke HIGH untuk mengirim sinyal
delayMicroseconds(10); // Tunggu 10 mikrodetik
digitalWrite(TrigPin, LOW); // Mengatur TrigPin kembali ke LOW
// Membaca sinyal echo dan menghitung jarak
duration = pulseIn(EchoPin, HIGH); // Mengukur durasi sinyal yang diterima di EchoPin
distance = duration * 0.034 / 2; // Menghitung jarak dalam cm
Serial.print("Jarak: "); // Menampilkan teks "Jarak: " di Serial Monitor
Serial.print(distance); // Menampilkan nilai jarak
Serial.println(" cm"); // Menampilkan satuan "cm" di Serial Monitor
// Kondisi jika jarak kurang dari 5 cm
if (distance < 5) {
digitalWrite(LEDredPin, HIGH); // Nyalakan lampu merah
digitalWrite(LEDyellowPin, LOW); // Matikan lampu kuning
digitalWrite(LEDgreenPin, LOW); // Matikan lampu hijau
tone(BuzzerPin, 1000); // BuzzerPin berbunyi cepat dengan frekuensi 1000 Hz
delay(100); // Tunggu 100 ms
digitalWrite(LEDredPin, LOW); // Matikan lampu merah
noTone(BuzzerPin); // Matikan bunyi BuzzerPin
delay(100); // Tunggu 100 ms
// Kondisi jika jarak kurang dari 10 cm
} else if (distance < 10) {
digitalWrite(LEDredPin, LOW); // Nyalakan lampu merah
digitalWrite(LEDyellowPin, HIGH); // Nyalakan lampu kuning
digitalWrite(LEDgreenPin, LOW); // Matikan lampu hijau
tone(BuzzerPin, 500); // BuzzerPin berbunyi pelan dengan frekuensi 500 Hz
delay(500); // Tunggu 500 ms
digitalWrite(LEDredPin, LOW); // Matikan lampu merah
digitalWrite(LEDyellowPin, LOW); // Matikan lampu kuning
noTone(BuzzerPin); // Matikan bunyi BuzzerPin
delay(500); // Tunggu 500 ms
// Kondisi jika jarak lebih dari 10 cm
} else {
digitalWrite(LEDredPin, LOW); // Nyalakan lampu merah
digitalWrite(LEDyellowPin, LOW); // Matikan lampu kuning
digitalWrite(LEDgreenPin, HIGH); // Nyalakan lampu hijau
noTone(BuzzerPin); // Pastikan BuzzerPin mati
}
delay(200); // Penundaan akhir di setiap loop agar pembacaan stabil
}