#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// PIN SETUP
int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 2;
int buzzer = 7;
int button = 6;
int melody[] = {
262, 262, 294, 262, 349, 330, // “Happy Teachers Day”
262, 262, 294, 262, 392, 349 // “Thank you for guiding me”
};
int noteDurations[] = {
4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 2
};
void setup() {
lcd.init();
lcd.backlight();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(button, INPUT_PULLUP);
pinMode(led4, OUTPUT);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Press the button");
lcd.setCursor(0,1);
lcd.print("to play message");
}
void loop() {
int baca = digitalRead(button);
if (baca == LOW){ // LOW tombol di tekan
digitalWrite(led4, HIGH);
} else {
digitalWrite(led4, LOW);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Happy Teachers");
lcd.setCursor(0,1);
lcd.print("Day! kak andi!");
for (int i = 0; i < 12; i++) {
digitalWrite(led1, HIGH);
delay(20);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(20);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
delay(20);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
int duration = 1000 / noteDurations[i];
tone(buzzer, melody[i], duration);
delay(duration * 1.30);
noTone(buzzer);
}
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(100);
}