#include <SPI.h>
#include <SD.h>
const int trigPin = 3; // Pin untuk trig sensor ultrasonik
const int echoPin = 4; // Pin untuk echo sensor ultrasonik
const int buzzerPin = 5; // Pin untuk buzzer
long duration;
int currentDistance; // Jarak saat ini
int previousDistance; // Jarak sebelumnya
const int threshold = 5; // Ambang perubahan jarak (dalam cm)
void setup() {
// Inisialisasi pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
// Inisialisasi komunikasi serial
Serial.begin(9600);
// Inisialisasi nilai awal
previousDistance = measureDistance();
}
void loop() {
// Mengukur jarak saat ini
currentDistance = measureDistance();
// Menampilkan jarak ke serial monitor
Serial.print("Jarak saat ini: ");
Serial.print(currentDistance);
Serial.println(" cm");
// Memeriksa perubahan jarak
if (abs(currentDistance - previousDistance) > threshold) {
tone(buzzerPin, 1000); // Menghasilkan nada 1 kHz
Serial.println("Pergerakan terdeteksi! Buzzer menyala.");
} else {
noTone(buzzerPin); // Mematikan suara buzzer
}
// Update jarak sebelumnya
previousDistance = currentDistance;
delay(200); // Delay untuk pembacaan berikutnya
tone(buzzerPin, 1000); // Buzzer menghasilkan suara 1 kHz
delay(1000); // Tunggu 1 detik
noTone(buzzerPin); // Matikan suara buzzer
delay(1000); // Tunggu 1 detik
}
// Fungsi untuk mengukur jarak
int measureDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
return duration * 0.0344 / 2; // Menghitung jarak dalam cm
}