← Previous Invention

Random Morse Code Messages

Next Invention →

Bruce the Frog

Catchy Tunes

Here's something you're going to love: a bunch of copy-and-paste catchy tunes. All you need to do is connect the buzzer to the Brain Board and upload the code. Of course, all of them will sound extremely annoying.

01. Add the buzzer

02. Plug in the cable

03. Connect to your computer

Catchy Tune

Twinkle, Twinkle, Little Star

Don’t forget to select your port, like ususal

Copy and paste the sample code

int speakerPin = 11;
 
int length = 15; // the number of notes
 
//twinkle twinkle little star
char notes[] = "ccggaag ffeeddc ggffeed ggffeed ccggaag ffeeddc "; // a space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;
 
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 };
 
  // play the tone corresponding to the note name
  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
      playTone(tones[i], duration);
    }
  }
}
 
void setup() {
  pinMode(speakerPin, OUTPUT);
}
 
void loop() {
  for (int i = 0; i < length; i++) {
    if (notes[i] == ' ') {
      delay(beats[i] * tempo); // rest
    } else {
      playNote(notes[i], beats[i] * tempo);
    }
 
    // pause between notes
    delay(tempo / 2); 
  }
}

Catchy Tune

Never Gonna Give You Up

Don't forget to select your port, like ususal

Copy and paste the sample code

const int buzzerPin = 11;
 
// We'll set up an array with the notes we want to play
// change these values to make different songs!
 
// Length must equal the total number of notes and spaces 
 
const int songLength = 18;
 
// Notes is an array of text characters corresponding to the notes
// in your song. A space represents a rest (no tone)
 
char notes[] = "cdfda ag cdfdg gf "; // a space represents a rest
 
// Beats is an array of values for each note and rest.
// A "1" represents a quarter-note, 2 a half-note, etc.
// Don't forget that the rests (spaces) need a length as well.
 
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};
 
// The tempo is how fast to play the song.
// To make the song play faster, decrease this value.
 
int tempo = 113;
 
void setup() 
{
  pinMode(buzzerPin, OUTPUT);
}
 
void loop() 
{
  int i, duration;
 
  for (i = 0; i < songLength; i++) // step through the song arrays
  {
    duration = beats[i] * tempo;  // length of note/rest in ms
 
    if (notes[i] == ' ')          // is this a rest? 
    {
      delay(duration);            // then pause for a moment
    }
    else                          // otherwise, play the note
    {
      tone(buzzerPin, frequency(notes[i]), duration);
      delay(duration);            // wait for tone to finish
    }
    delay(tempo/10);              // brief pause between notes
  }
 
  // We only want to play the song once, so we'll pause forever:
  while(true){}
  // If you'd like your song to play over and over,
  // remove the above statement
}
 
int frequency(char note) 
{
  // This function takes a note character (a-g), and returns the
  // corresponding frequency in Hz for the tone() function.
 
  int i;
  const int numNotes = 8;  // number of notes we're storing
 
  // The following arrays hold the note characters and their
  // corresponding frequencies. The last "C" note is uppercase
  // to separate it from the first lowercase "c". If you want to
  // add more notes, you'll need to use unique characters.
 
  // For the "char" (character) type, we put single characters
  // in single quotes.
 
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};
 
  // Now we'll search through the letters in the array, and if
  // we find it, we'll return the frequency for that note.
 
  for (i = 0; i < numNotes; i++)  // Step through the notes
  {
    if (names[i] == note)         // Is this the one?
    {
      return(frequencies[i]);     // Yes! Return the frequency
    }
  }
  return(0);  // We looked through everything and didn't find it,
              // but we still need to return a value, so return 0.
}