Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int ledPin = 13;
- //led for visualization (use 13 for built-in led)
- int speakerPin = 11;
- //speaker connected to one of the PWM ports
- #define c 261
- #define d 294
- #define e 329
- #define f 349
- #define g 391
- #define gS 415
- #define a 440
- #define aS 455
- #define b 466
- #define cH 523
- #define cSH 554
- #define dH 587
- #define dSH 622
- #define eH 659
- #define fH 698
- #define fSH 740
- #define gH 784
- #define gSH 830
- #define aH 880
- //frequencies for the tones we're going to use
- //used http://home.mit.bme.hu/~bako/tonecalc/tonecalc.htm to get these
- void setup()
- {
- pinMode(ledPin, OUTPUT);
- // sets the ledPin to be an output
- pinMode(speakerPin, OUTPUT);
- //sets the speakerPin to be an output
- }
- void loop() // run over and over again
- {
- march();
- }
- void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
- {
- digitalWrite(ledPin, HIGH);
- //use led to visualize the notes being played
- int x;
- long delayAmount = (long)(1000000/frequencyInHertz);
- long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
- for (x=0;x<loopTime;x++)
- {
- digitalWrite(speakerPin,HIGH);
- delayMicroseconds(delayAmount);
- digitalWrite(speakerPin,LOW);
- delayMicroseconds(delayAmount);
- }
- digitalWrite(ledPin, LOW);
- //set led back to low
- delay(20);
- //a little delay to make all notes sound separate
- }
- void march()
- {
- //for the sheet music see:
- //http://www.musicnotes.com/sheetmusic/mtd.asp?ppn=MN0016254
- //this is just a translation of said sheet music to frequencies / time in ms
- //used 500 ms for a quart note
- beep(speakerPin, 440, 500);
- beep(speakerPin, 440, 500);
- beep(speakerPin, 440, 500);
- beep(speakerPin, 349, 350);
- beep(speakerPin, 523, 150);
- beep(speakerPin, 440, 500);
- beep(speakerPin, 349, 350);
- beep(speakerPin, 523, 150);
- beep(speakerPin, 440, 1000);
- //first bit
- beep(speakerPin, 659, 500);
- beep(speakerPin, 659, 500);
- beep(speakerPin, 659, 500);
- beep(speakerPin, 698, 350);
- beep(speakerPin, 523, 150);
- beep(speakerPin, 415, 500);
- beep(speakerPin, 349, 350);
- beep(speakerPin, 523, 150);
- beep(speakerPin, 440, 1000);
- //second bit...
- beep(speakerPin, 880, 500);
- beep(speakerPin, 440, 350);
- beep(speakerPin, 440, 150);
- beep(speakerPin, 880, 500);
- beep(speakerPin, 830, 250);
- beep(speakerPin, 784, 250);
- beep(speakerPin, 740, 125);
- beep(speakerPin, 698, 125);
- beep(speakerPin, 740, 250);
- delay(250);
- beep(speakerPin, 455, 250);
- beep(speakerPin, 622, 500);
- beep(speakerPin, 587, 250);
- beep(speakerPin, 554, 250);
- //start of the interesting bit
- beep(speakerPin, 523, 125);
- beep(speakerPin, 466, 125);
- beep(speakerPin, 523, 250);
- delay(250);
- beep(speakerPin, 349, 125);
- beep(speakerPin, 415, 500);
- beep(speakerPin, 349, 375);
- beep(speakerPin, 440, 125);
- beep(speakerPin, 523, 500);
- beep(speakerPin, 440, 375);
- beep(speakerPin, 523, 125);
- beep(speakerPin, 659, 1000);
- //more interesting stuff (this doesn't quite get it right somehow)
- beep(speakerPin, 880, 500);
- beep(speakerPin, 440, 350);
- beep(speakerPin, 440, 150);
- beep(speakerPin, 880, 500);
- beep(speakerPin, 830, 250);
- beep(speakerPin, 784, 250);
- beep(speakerPin, 740, 125);
- beep(speakerPin, 698, 125);
- beep(speakerPin, 740, 250);
- delay(250);
- beep(speakerPin, 455, 250);
- beep(speakerPin, 622, 500);
- beep(speakerPin, 587, 250);
- beep(speakerPin, 554, 250);
- //repeat... repeat
- beep(speakerPin, 523, 125);
- beep(speakerPin, 466, 125);
- beep(speakerPin, 523, 250);
- delay(250);
- beep(speakerPin, 349, 250);
- beep(speakerPin, 415, 500);
- beep(speakerPin, 349, 375);
- beep(speakerPin, 523, 125);
- beep(speakerPin, 440, 500);
- beep(speakerPin, 349, 375);
- beep(speakerPin, 261, 125);
- beep(speakerPin, 440, 1000);
- //and we're done \รณ/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement