#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int speaker = 5;
void DO() { tone(speaker, 262); }
void RE() { tone(speaker, 294); }
void MI() { tone(speaker, 330); }
void FA() { tone(speaker, 349); }
void SOL() { tone(speaker, 395); }
void LA() { tone(speaker, 440); }
void SI() { tone(speaker, 494); }
void DOO() { tone(speaker, 523); }
void DIAM() { noTone(speaker); }
void playMelody() {
lcd.setCursor(0, 0);
lcd.print("Selamat Hari");
lcd.setCursor(0, 1);
lcd.print("Ibu!!!");
MI(); delay(300);
RE(); delay(300);
MI(); delay(300);
DO(); delay(500);
DIAM(); delay(300);
DO(); delay(300);
DOO(); delay(400);
LA(); delay(300);
DOO(); delay(350);
SOL(); delay(400);
DIAM(); delay(500);
LA(); delay(300);
SOL(); delay(350);
FA(); delay(300);
MI(); delay(350);
DO(); delay(300);
RE(); delay(400);
MI(); delay(300);
SOL(); delay(400);
MI(); delay(300);
RE(); delay(500);
DIAM(); delay(200);
MI(); delay(400);
DIAM(); delay(100);
MI(); delay(400);
RE(); delay(250);
MI(); delay(300);
DO(); delay(350);
DIAM(); delay(200);
DO(); delay(600);
DOO(); delay(450);
DIAM(); delay(80);
DOO(); delay(400);
LA(); delay(300);
DOO(); delay(350);
SOL(); delay(550);
DIAM(); delay(200);
LA(); delay(300);
DIAM(); delay(100);
LA(); delay(250);
SOL(); delay(300);
FA(); delay(250);
MI(); delay(300);
DO(); delay(200);
RE(); delay(300);
MI(); delay(200);
DIAM(); delay(100);
MI(); delay(300);
DO(); delay(300);
RE(); delay(450);
DO(); delay(700);
DIAM(); delay(200);
}
void setup() {
lcd.begin(16, 2);
lcd.backlight();
pinMode(speaker, OUTPUT);
lcd.print("What day is it???");
delay(1000);
lcd.clear();
lcd.print("Mother's Day!!");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ibu adalah");
lcd.setCursor(0, 1);
lcd.print("inspirasiku");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Terimakasih atas");
lcd.setCursor(0, 1);
lcd.print("kasih sayangmu!");
delay(2000);
lcd.clear();
playMelody();
}
void loop() {
// Tidak ada fungsi tambahan di loop
}