/* Educational BoosterPack MK II - Konami/Contra Intro http://boosterpackdepot.info/wiki/index.php?title=Educational_BoosterPack_MK_II Play Konami/Contra Intro through the buzzer, demonstrating buzzer tune() API and pitch/tone/simple music generation Dec 2012 - Created for Educational BoosterPack buzzer Pin = 19 Dec 2013 - Modified for Educational BoosterPack MK II buzzer Pin = 40 by Dung Dang */ #include "pitches.h" int buzzerPin = 40; // notes in the melody: int melody[] = { NOTE_F2, NOTE_C6, NOTE_B5, NOTE_G5, NOTE_A5, NOTE_E1, NOTE_B1, NOTE_E1, NOTE_B1, NOTE_E1, NOTE_B1, NOTE_G6, NOTE_F6, NOTE_DS6, NOTE_C6, NOTE_AS5, NOTE_C6, NOTE_AS5, NOTE_GS5, NOTE_G5, NOTE_GS5, NOTE_G5, NOTE_F5, NOTE_DS5, NOTE_F5, NOTE_AS4, NOTE_C5, NOTE_DS5, NOTE_F5, NOTE_C6, NOTE_NOTONE, NOTE_AS5, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_F5, NOTE_C6, NOTE_NOTONE, NOTE_AS5, NOTE_C6, NOTE_D6, NOTE_GS5, NOTE_F5, // Repeat once NOTE_C6, NOTE_NOTONE, NOTE_AS5, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_F5, NOTE_C6, NOTE_NOTONE, NOTE_AS5, NOTE_C6, NOTE_D6, NOTE_GS5, NOTE_F5, NOTE_C6, NOTE_NOTONE, NOTE_C6, NOTE_D6, NOTE_DS6, NOTE_NOTONE, NOTE_DS6, NOTE_NOTONE, NOTE_G5, NOTE_AS5, NOTE_C6, NOTE_D6, NOTE_NOTONE, NOTE_D6, NOTE_DS6, NOTE_C6, NOTE_NOTONE, NOTE_C6, NOTE_NOTONE, NOTE_DS6, NOTE_F6 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 2, 2, 2, 2,1, 2, 2, 2, 2, 2, 1, // 11 start screen notes 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, // 20 notes 16, 16, 16, 16, 16, 16, 16, 2, // for both lines 16, 16, 16, 8, 16, 2, 2, // 7 16, 16, 16, 8, 16, 2, 2, // 7 // Repeat once 16, 16, 16, 8, 16, 2, 2, // 7 16, 16, 16, 8, 16, 2, 2, // 7 16, 16, 4, 4, 16, 16, 16, 8, // 8 16, 16, 16, 16, 16, 4, 4, // 7 16, 16, 16, 16, 16, 4 // 6 }; void setup() { pinMode(buzzerPin,OUTPUT); } void loop() { for (int thisNote = 0; thisNote < 80; thisNote++) { // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. // Had to down tempo to 100/150 int noteDuration = 1500/noteDurations[thisNote]; tone(buzzerPin, melody[thisNote],noteDuration); int pauseBetweenNotes = noteDuration + 50; //delay between pulse delay(pauseBetweenNotes); noTone(buzzerPin); // stop the tone playing } }