Skip to content

Instantly share code, notes, and snippets.

@vixtory09678
Created October 31, 2014 07:34
Show Gist options
  • Save vixtory09678/cc198af6184312c4bf23 to your computer and use it in GitHub Desktop.
Save vixtory09678/cc198af6184312c4bf23 to your computer and use it in GitHub Desktop.
int speakerPin = 12;
int length = 23;
// d r m f s ra t do
// c d e f g a b C
char notes[] = "agg egaabg agggagg gaa";
int beats[]={1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,2};
int tempo =300;
/********************************************************************************************/
void setup()
{
pinMode(speakerPin,OUTPUT);
}
/********************************************************************************************/
void loop()
{
for(int i =0;i<length;i++)
{
if(notes[i]==' ')
{
delay(beats[i]*tempo);
}
else
{
playNote(notes[i], beats[i]*tempo);
}
delay(tempo/2);
}
}
/********************************************************************************************/
void playTone(int tone,int duration)
{
for (long i =0;i<duration * 1000L;i += tone * 2)
{
digitalWrite(speakerPin,HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin,LOW);
delayMicroseconds(tone);
}
}
/********************************************************************************************/
void playNote(char note, int duration)
{
char names[]={'c','d','e','f','g','a','b','C'};
int tones[]={1915,1700,1519,1432,1275,1136,1014,956};
for(int i = 0; i < 8 ; i++)
{
if(names[i] == note)
{
playTone(tones[i], duration);
}
}
}
/********************************************************************************************/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment