#define led_hijau 5
#define led_kuning 6
#define led_merah 7
#define buzzer 11
#define trigger 9
#define echo 10
int frekuensi = 1000; // Frekuensi buzzer dalam Hz
void setup() {
Serial.begin(9600);
pinMode(led_hijau, OUTPUT);
pinMode(led_kuning, OUTPUT);
pinMode(led_merah, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
long waktu, jarak;
// Mengirimkan pulsa trigger ke sensor ultrasonik
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
// Mengukur durasi pulsa echo
waktu = pulseIn(echo, HIGH);
// Menghitung jarak
jarak = (waktu / 2) / 29.1;
// Menampilkan jarak pada Serial Monitor
Serial.print("Jarak: ");
Serial.print(jarak);
Serial.println(" cm");
// Mengatur LED dan Buzzer berdasarkan jarak
if (jarak <= 10) {
// Jarak 10 cm
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, LOW);
digitalWrite(led_merah, HIGH);
tone(buzzer, 1000);
} else if (jarak <= 20) {
// Jarak 11-20 cm
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, HIGH);
digitalWrite(led_merah, LOW);
tone(buzzer, 500);
} else if (jarak <= 30) {
// Jarak <= 21-30 cm
digitalWrite(led_hijau, HIGH);
digitalWrite(led_kuning, LOW);
digitalWrite(led_merah, LOW);
tone(buzzer, 250);
} else {
// Jarak lebih dari 30 cm
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, LOW);
digitalWrite(led_merah, LOW);
noTone(buzzer); // Matikan buzzer
Serial.println("Jarak diluar jangkauan!\n");
}
delay(500); // Delay 500 ms sebelum pembacaan berikutnya
}