#include <Servo.h>
#include <LiquidCrystal_I2C.h>
int val1;
int val2;
int val3;
LiquidCrystal_I2C my_lcd(0x27, 16, 2);
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
void setup() {
my_lcd.begin(16, 2);
my_lcd.print("Happy Birthday!");
val1=150;
val2=150;
val3=60;
servo1.attach(2);
servo2.attach(3);
servo3.attach(4);
servo4.attach(5);
servo1.write(100);
servo2.write(100);
servo3.write(95);
servo4.write(105);
}
void srv1() {
servo1.write(120);
delay(val1);
servo1.write(100);
delay(val2);
}
void srv2() {
servo2.write(83);
delay(val1);
servo2.write(100);
delay(val2);
}
void srv3() {
servo1.write(85);
delay(val1);
servo1.write(100);
delay(val2);
}
void srv4() {
servo2.write(112);
delay(val1);
servo2.write(100);
delay(val2);
}
void srv5() {
servo3.write(72);
delay(val1);
servo3.write(90);
delay(val2);
}
void srv6() {
servo4.write(90);
delay(val1);
servo4.write(105);
delay(val2);
}
void loop() {
my_lcd.setCursor(0, 1);
my_lcd.print("Song for you!");
srv1();
srv2();
delay(2*val3);
srv1();
delay(2*val3);
srv4();
delay(2*val3);
srv3();
delay(2*val3);
delay(270);
srv1();
srv2();
delay(2*val3);
srv1();
delay(2*val3);
srv5();
delay(2*val3);
srv4();
delay(2*val3);
delay(270);
srv1();
srv6();
delay(2*val3);
srv5();
delay(2*val3);
srv4();
delay(2*val3);
srv3();
delay(2*val3);
srv2();
delay(2*val3);
delay(270);
srv5();
srv4();
srv5();
delay(2*val3);
srv3();
delay(2*val3);
srv4();
delay(2*val3);
srv3();
delay(2*val3);
delay(800);
}