#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
#define NOTE_C4 262 //DO
#define NOTE_D4 294 //RE
#define NOTE_E4 330 //MI
#define NOTE_F4 349 //FA
#define NOTE_G4 392 //SO
#define NOTE_A4 440 //LA
#define NOTE_B4 494 //SI
#define NOTE_C5 523 //DO
#define NOTE_B3 277 //SI
const int buzz = 9;
void setup() {
pinMode(buzz, OUTPUT);
pinMode(7, INPUT_PULLUP);
lcd.init();
}
void loop() {
// put your main code here, to run repeatedly:
int buttonState = digitalRead(7);
// Ibu Kita Kartini
if (buttonState == LOW)
{
lcd.backlight();
for (int i = 0; i < 2; i++) {
lcd.setCursor(4,0);
lcd.print("IBU KITA");
lcd.setCursor(5,1);
lcd.print("KARTINI");
tone(buzz, NOTE_C4, 600);
delay(600);
tone(buzz, NOTE_D4, 500);
delay(500);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_G4, 600);
delay(600);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_C4, 500);
delay(500);
lcd.clear();
// Putri Sejati | Pendekar Bangsa
if (i % 2 == 0)
{
lcd.setCursor(6,0);
lcd.print("PUTRI");
lcd.setCursor(5,1);
lcd.print("SEJATI");
}
else
{
lcd.setCursor(4,0);
lcd.print("PENDEKAR");
lcd.setCursor(5,1);
lcd.print("BANGSA");
}
tone(buzz, NOTE_A4, 600);
delay(600);
tone(buzz, NOTE_C5, 500);
delay(500);
tone(buzz, NOTE_B4, 500);
delay(500);
tone(buzz, NOTE_A4, 500);
delay(500);
tone(buzz, NOTE_G4, 500);
delay(500);
lcd.clear();
// Putri Indonesia | Pendekar Kaumnya
if (i % 2 == 0)
{
lcd.setCursor(6,0);
lcd.print("PUTRI");
lcd.setCursor(4,1);
lcd.print("INDONESIA");
}
else
{
lcd.setCursor(4,0);
lcd.print("PENDEKAR");
lcd.setCursor(4,1);
lcd.print("KAUMNYA");
}
tone(buzz, NOTE_F4, 600);
delay(600);
tone(buzz, NOTE_A4, 500);
delay(500);
tone(buzz, NOTE_G4, 500);
delay(500);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_C4, 500);
delay(500);
lcd.clear();
// Harum namanya | Untuk Merdeka
if (i % 2 == 0)
{
lcd.setCursor(6,0);
lcd.print("HARUM");
lcd.setCursor(5,1);
lcd.print("NAMANYA");
}
else
{
lcd.setCursor(6,0);
lcd.print("UNTUK");
lcd.setCursor(5,1);
lcd.print("MERDEKA");
}
tone(buzz, NOTE_D4, 600);
delay(600);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_D4, 500);
delay(500);
tone(buzz, NOTE_C4, 500);
delay(500);
lcd.clear();
}
// Wahai Ibu kita Kartini
lcd.setCursor(3,0);
lcd.print("WAHAI IBU");
lcd.setCursor(2,1);
lcd.print("KITA KARTINI");
tone(buzz, NOTE_F4, 600);
delay(600);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_A4, 500);
delay(500);
tone(buzz, NOTE_G4, 550);
delay(550);
tone(buzz, NOTE_A4, 550);
delay(550);
tone(buzz, NOTE_G4, 550);
delay(550);
tone(buzz, NOTE_E4, 550);
delay(550);
tone(buzz, NOTE_C4, 500);
delay(500);
lcd.clear();
// Putri Yang Mulia
lcd.setCursor(3,0);
lcd.print("PUTRI YANG");
lcd.setCursor(6,1);
lcd.print("MULIA");
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_D4, 500);
delay(500);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_G4, 500);
delay(500);
lcd.clear();
// Sungguh besar cita-cita nya
lcd.setCursor(2,0);
lcd.print("SUNGGUH BESAR");
lcd.setCursor(2,1);
lcd.print("CITA-CITA NYA");
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_F4, 700);
delay(700);
tone(buzz, NOTE_E4, 500);
delay(500);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_A4, 500);
delay(500);
tone(buzz, NOTE_G4, 550);
delay(550);
tone(buzz, NOTE_A4, 550);
delay(550);
tone(buzz, NOTE_G4, 550);
delay(550);
tone(buzz, NOTE_E4, 550);
delay(550);
tone(buzz, NOTE_C4, 500);
delay(500);
lcd.clear();
// Bagi Indonesia
lcd.setCursor(6,0);
lcd.print("BAGI");
lcd.setCursor(4,1);
lcd.print("INDONESIA");
tone(buzz, NOTE_D4, 500);
delay(500);
tone(buzz, NOTE_F4, 500);
delay(500);
tone(buzz, NOTE_B3, 500);
delay(500);
tone(buzz, NOTE_D4, 500);
delay(500);
tone(buzz, NOTE_C4, 500);
delay(500);
lcd.clear();
// tone(buzz, NOTE_A4, 500); 6
// delay(500);
// tone(buzz, NOTE_B4, 500); 7
// delay(500);
// tone(buzz, NOTE_C5, 500); i
// delay(500);
noTone(buzz);
delay(1000);
}
else
{
lcd.noBacklight();
noTone(buzz);
}
}