Advertisement
OscarJO91

marcha imperal

Jun 24th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. int ledPin = 13;
  2. //led for visualization (use 13 for built-in led)
  3.  
  4. int speakerPin = 11;
  5. //speaker connected to one of the PWM ports
  6.  
  7. #define c 261
  8. #define d 294
  9. #define e 329
  10. #define f 349
  11. #define g 391
  12. #define gS 415
  13. #define a 440
  14. #define aS 455
  15. #define b 466
  16. #define cH 523
  17. #define cSH 554
  18. #define dH 587
  19. #define dSH 622
  20. #define eH 659
  21. #define fH 698
  22. #define fSH 740
  23. #define gH 784
  24. #define gSH 830
  25. #define aH 880
  26. //frequencies for the tones we're going to use
  27. //used http://home.mit.bme.hu/~bako/tonecalc/tonecalc.htm to get these
  28.  
  29. void setup()
  30. {
  31. pinMode(ledPin, OUTPUT);
  32. // sets the ledPin to be an output
  33. pinMode(speakerPin, OUTPUT);
  34. //sets the speakerPin to be an output
  35. }
  36.  
  37. void loop() // run over and over again
  38. {
  39. march();
  40. }
  41.  
  42. void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
  43. {
  44. digitalWrite(ledPin, HIGH);
  45. //use led to visualize the notes being played
  46.  
  47. int x;
  48. long delayAmount = (long)(1000000/frequencyInHertz);
  49. long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
  50. for (x=0;x<loopTime;x++)
  51. {
  52. digitalWrite(speakerPin,HIGH);
  53. delayMicroseconds(delayAmount);
  54. digitalWrite(speakerPin,LOW);
  55. delayMicroseconds(delayAmount);
  56. }
  57.  
  58. digitalWrite(ledPin, LOW);
  59. //set led back to low
  60.  
  61. delay(20);
  62. //a little delay to make all notes sound separate
  63. }
  64.  
  65. void march()
  66. {
  67. //for the sheet music see:
  68. //http://www.musicnotes.com/sheetmusic/mtd.asp?ppn=MN0016254
  69. //this is just a translation of said sheet music to frequencies / time in ms
  70. //used 500 ms for a quart note
  71.  
  72. beep(speakerPin, 440, 500);
  73. beep(speakerPin, 440, 500);
  74. beep(speakerPin, 440, 500);
  75. beep(speakerPin, 349, 350);
  76. beep(speakerPin, 523, 150);
  77.  
  78. beep(speakerPin, 440, 500);
  79. beep(speakerPin, 349, 350);
  80. beep(speakerPin, 523, 150);
  81. beep(speakerPin, 440, 1000);
  82. //first bit
  83.  
  84. beep(speakerPin, 659, 500);
  85. beep(speakerPin, 659, 500);
  86. beep(speakerPin, 659, 500);
  87. beep(speakerPin, 698, 350);
  88. beep(speakerPin, 523, 150);
  89.  
  90. beep(speakerPin, 415, 500);
  91. beep(speakerPin, 349, 350);
  92. beep(speakerPin, 523, 150);
  93. beep(speakerPin, 440, 1000);
  94. //second bit...
  95.  
  96. beep(speakerPin, 880, 500);
  97. beep(speakerPin, 440, 350);
  98. beep(speakerPin, 440, 150);
  99. beep(speakerPin, 880, 500);
  100. beep(speakerPin, 830, 250);
  101. beep(speakerPin, 784, 250);
  102.  
  103. beep(speakerPin, 740, 125);
  104. beep(speakerPin, 698, 125);
  105. beep(speakerPin, 740, 250);
  106. delay(250);
  107. beep(speakerPin, 455, 250);
  108. beep(speakerPin, 622, 500);
  109. beep(speakerPin, 587, 250);
  110. beep(speakerPin, 554, 250);
  111. //start of the interesting bit
  112.  
  113. beep(speakerPin, 523, 125);
  114. beep(speakerPin, 466, 125);
  115. beep(speakerPin, 523, 250);
  116. delay(250);
  117. beep(speakerPin, 349, 125);
  118. beep(speakerPin, 415, 500);
  119. beep(speakerPin, 349, 375);
  120. beep(speakerPin, 440, 125);
  121.  
  122. beep(speakerPin, 523, 500);
  123. beep(speakerPin, 440, 375);
  124. beep(speakerPin, 523, 125);
  125. beep(speakerPin, 659, 1000);
  126. //more interesting stuff (this doesn't quite get it right somehow)
  127.  
  128. beep(speakerPin, 880, 500);
  129. beep(speakerPin, 440, 350);
  130. beep(speakerPin, 440, 150);
  131. beep(speakerPin, 880, 500);
  132. beep(speakerPin, 830, 250);
  133. beep(speakerPin, 784, 250);
  134.  
  135. beep(speakerPin, 740, 125);
  136. beep(speakerPin, 698, 125);
  137. beep(speakerPin, 740, 250);
  138. delay(250);
  139. beep(speakerPin, 455, 250);
  140. beep(speakerPin, 622, 500);
  141. beep(speakerPin, 587, 250);
  142. beep(speakerPin, 554, 250);
  143. //repeat... repeat
  144.  
  145. beep(speakerPin, 523, 125);
  146. beep(speakerPin, 466, 125);
  147. beep(speakerPin, 523, 250);
  148. delay(250);
  149. beep(speakerPin, 349, 250);
  150. beep(speakerPin, 415, 500);
  151. beep(speakerPin, 349, 375);
  152. beep(speakerPin, 523, 125);
  153.  
  154. beep(speakerPin, 440, 500);
  155. beep(speakerPin, 349, 375);
  156. beep(speakerPin, 261, 125);
  157. beep(speakerPin, 440, 1000);
  158. //and we're done \รณ/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement