//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void play_tone(int pin, float f, long len){
const float dc=0.5;
long p=1000000/f;
int d1=p*dc;
int count=len/p;
for (int c=0;c<count;++c){
digitalWrite(pin, HIGH);
delayMicroseconds(d1);
digitalWrite(pin, LOW);
delayMicroseconds(d1);
}
}
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
pinMode(8, OUTPUT);
}
void loop()
{
const long len1 = 1000000;
int long b4 = 493.88;
int long c5 = 523.25;
int long d5 = 587.33;
int long d5r = 623.295;
int long e5 = 659.26;
int long f5 = 698.46;
int long f5r = 741.225;
int long g5 = 783.99;
int long a5 = 880.00;
int long a5b = 831.995;
int long b5 = 987.77;
int long c6 = 1046.5;
int long d6b = 1097.1;
int long d6 = 1174.7;
int long a5r = 933.885;
int long a4r = 466.94;
tone(8, b4, len1);
delay(250);
tone(8, e5, len1);
delay(500);
tone(8, g5, len1);
delay(125);
tone(8, f5r, len1);
delay(250);
tone(8, e5, len1);
delay(500);
tone(8, b5, len1);
delay(250);
tone(8, a5, len1);
delay(1000);
tone(8, f5r, len1);
delay(1000);
tone(8, e5, len1);
delay(500);
tone(8, g5, len1);
delay(125);
tone(8, f5r, len1);
delay(250);
tone(8, d5r, len1);
delay(500);
tone(8, f5, len1);
delay(250);
tone(8, b4, len1);
delay(1000);
tone(8, b4, len1);
delay(250);
tone(8, e5, len1);
delay(500);
tone(8, g5, len1);
delay(125);
tone(8, f5r, len1);
delay(250);
tone(8, e5, len1);
delay(500);
tone(8, b5, len1);
delay(250);
tone(8, d6, len1);
delay(500);
tone(8, d6b, len1);
delay(250);
tone(8, c6, len1);
delay(500);
tone(8, a5b, len1);
delay(250);
tone(8, c6, len1);
delay(500);
tone(8, b5, len1);
delay(125);
tone(8, a5r, len1);
delay(250);
tone(8, a4r, len1);
delay(500);
tone(8, g5, len1);
delay(250);
tone(8, e5, len1);
delay(1000);
}