const int pirSensorPin = 2; // Pin sensor PIR
const int buzzerPin = 8; // Pin buzzer
// Nada (frekuensi dalam Hertz) untuk "Mary Had a Little Lamb"
#define NOTE_B4 494
#define NOTE_A4 440
#define NOTE_G4 392
#define NOTE_F4 349
#define NOTE_E4 330
#define NOTE_D4 294
#define NOTE_C4 262
void setup() {
pinMode(pirSensorPin, INPUT);
pinMode(buzzerPin, OUTPUT);
digitalWrite(buzzerPin, LOW); // Matikan buzzer saat booting
Serial.begin(9600);
}
void loop() {
int motionDetected = digitalRead(pirSensorPin);
if (motionDetected == HIGH) {
playMelody(); // Panggil fungsi untuk memainkan nada saat gerakan terdeteksi
} else {
noTone(buzzerPin); // Pastikan untuk mematikan nada jika tidak ada gerakan
}
delay(100); // Delay untuk menghindari overloading Serial Monitor
}
void playMelody() {
// Menggunakan nada "Mary Had a Little Lamb"
tone(buzzerPin, NOTE_E4); // E
delay(500); // Lama nada
noTone(buzzerPin);
delay(100); // jeda antar nada
tone(buzzerPin, NOTE_D4); // D
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_C4); // C
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_D4); // D
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_E4); // E
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_E4); // E
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_E4); // E
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_D4); // D
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_C4); // C
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_D4); // D
delay(500);
noTone(buzzerPin);
delay(100);
tone(buzzerPin, NOTE_E4); // E
delay(500);
noTone(buzzerPin);
delay(100);
}