Maker Pro
Arduino

Happy Birthday Tune With Arduino Uno

May 25, 2020 by Spark Buzzer
Share
banner

Wish your loved one with this Happy Birthday Music with arduino Project, Happy Birthday with arduino code

Hardware

Software

1 Arduino IDE

In this Arduino project, I will show you how to connect a speaker/buzzer with an Arduino board and play the song Happy Birthday with Arduino code.

Happy Birthday Song Using Arduino Uno

Wish your loved one a Happy Birthday with Arduino.

Step 1: Required Components

Required components for this project:

  • Arduino UNO
  • 8 ohms Speaker/Buzzer
  • Bc547 Transistor
  • Breadboard and Jumper Wires
IMG_20200525_134203 43.jpg

Step 2: Wiring Connections

  1. Connect positive of speaker to 5v
  2. Connect emitter pin to GND
  3. Connect base pin to 7th pin
  4. Connect collector pin to speaker

Here I have used a speacker with a BC547 transistor. This transistor is used as an amplifier to increase the speaker's volume.

tune with bc547.png

Step 3: Happy Birthday Arduino Code

//https://youtu.be/1o9gw0FWssI

int speakerPin = 7; // Buzzer pin
int length = 28; // the number of notes
char notes[] = "GGAGcB GGAGdc GGxecBA yyecdc";
int beats[] = {2,2,8,8,8,16,1,2,2,8,8,8,16,1,2,2,8,8,8,8,16,1,2,2,8,8,8,16};
int tempo = 200;// time delay between notes 

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', 'd', 'e', 'f', 'g', 'a', 'b',

                 'x', 'y' };

int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014,

                 956,  834,  765,  593,  468,  346,  224,

                 655 , 715 };

int SPEE = 5;

// play the tone corresponding to the note name

for (int i = 0; i < 17; i++) {

   if (names[i] == note) {
    int newduration = duration/SPEE;
     playTone(tones[i], newduration);
   }
}
}

void setup() {
pinMode(speakerPin, OUTPUT);
}

void loop() {
for (int i = 0; i < length; i++) {
   if (notes[i] == ' ') {
     delay(beats[i] * tempo); // delay between notes
   } else {
     playNote(notes[i], beats[i] * tempo);
   }
   // time delay between notes
   delay(tempo);
}
}

Author

Avatar
Spark Buzzer

Internet Of Things (IoT) and Electronics

Related Content

Categories

Comments


You May Also Like