#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "pitches.h"
LiquidCrystal_I2C lcd(0x27, 16, 2); // Sesuaikan alamat I2C LCD jika diperlukan
int buttonPin = 2; // Pin untuk push button
int buzzerPin = 8; // Pin untuk buzzer
void setup() {
lcd.begin(16, 2);
lcd.print("Selamat Ulang Tahun");
pinMode(buttonPin, INPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
if (digitalRead(buttonPin) == HIGH) {
lcd.clear();
lcd.print("Happy Birthday!");
// Mainkan lagu ulang tahun
int melody[] = {
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_F4,
NOTE_E4, NOTE_E4, NOTE_D4, NOTE_F4, NOTE_E4, NOTE_C4,
NOTE_D4, NOTE_D4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4
};
int noteDurations[] = {
8, 4, 4, 4, 4, 4,
8, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4
};
for (int i = 0; i < 29; i++) {
int noteDuration = 1300 / noteDurations[i];
tone(buzzerPin, melody[i], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(buzzerPin);
}
}
}