const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 12;
// Variabel untuk mengukur jarak
long duration;
int distance;
void setup() {
// Mengatur pin sebagai input atau output
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
// Memulai komunikasi serial
Serial.begin(9600);
}
void loop() {
// Mengirimkan sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(4);
digitalWrite(trigPin, HIGH);
delayMicroseconds(24);
digitalWrite(trigPin, LOW);
// Membaca durasi pantulan ultrasonik
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak dalam cm
distance = duration * 0.0343 / 2;
// Menampilkan jarak pada monitor serial
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Memainkan bunyi buzzer berdasarkan jarak
if (distance < 30) {
// Semakin dekat, semakin cepat bunyi buzzer
float delayTime = map(distance, 0, 30, 1000, 100);
tone(buzzerPin, 1000, delayTime);
delay(20);
} else {
// Jika jarak lebih dari 30 cm, buzzer tidak berbunyi
noTone(buzzerPin);
}
// Jeda sejenak sebelum membaca ulang sensor
delay(200);
}