How to Easily Play Music With Buzzer on Arduino (The Imperial March - STAR WARS)

203,820

92

30

Hi,I recently designed a sort of "library" in order to make easier to play exact notes on arduino with the buzzer.
I included the frequencies of the notes (pleasant to be heard) with #defines .
I then defined the value of the BPM ( you can modify it obviously) and according to that I defined the note values
( the most commonly used ones).
With this defines you can easyly play a note with the command "tone" like this:
tone(pin, note, duration)
eg:
tone(8,LA3,Q);
delay(1+Q);

the delay is important because thanks to that the note doesn't overlap possibly with the successive ones.
(the "1+" is one extra millisecond that i usually put to separate notes but you can avoid it if you prefer the notes to be continuous.

Here is the code:
ARDU NOTES
(http://tny.cz/d1a629c1)

Step 1: Example: the Imperial March

With a lot of effort I did it!
I wrote the code for the first part of the imperial march... so cool !

HERE IS THE CODE:
The Imperial March

and a video that I made:

Step 2: Well Done !

Now is your turn , make your arduino "whistle" all kinds of songs!
Hope you enjoyed this instructable !

6 People Made This Project!

Recommendations

  • Big and Small Contest

    Big and Small Contest
  • First Time Author

    First Time Author
  • PCB Contest

    PCB Contest

30 Discussions

0
None
AbhishekC37NurullahM

Reply 2 years ago

hey Nurullah, how did u connect buzzer with lcd & what was the code?

Please help...

Thank You

0
None
x.h

1 year ago

THANKS A LOT

0
None
notak

1 year ago

THANKS !!!!

0
None
Aidil Salihin

1 year ago

thank you so much! now i so excited

0
None
Paladin Fade.

2 years ago

its 2016 almost 2017 now. the current version of the arduino ide is not compatible with the code. what version of the ide are you using

0
None
ManuelA70

2 years ago

Thanks! Work perfect!! Im happy now hahahaa

0
None
Vexelius

2 years ago

Thank you very much for this tutorial! It helped me to build my own tone system (which is fully compatible with millis), using yours as reference.

0
None
Jean0x7BE

2 years ago

Excellent! Thanks for the nice job, it gave me an excellent Friday night! ;)

0
None
ArifSae

2 years ago

Thanks. I am trying this. Just a humble suggestions, if a name of buzzer pin is used instead of 8 at all places, it would be easier to change buzzer pin. (using find and replace to do so). Thanks for sharing.

0
None
JiříM9

2 years ago

Thanks man, that is awesome!!!

0
None
lucianom11

2 years ago

Thanks dude, pretty good library!!!

0
None
DawnetteB1

3 years ago

Yes it works on Arduino, just made this!

0
None
felpadon

3 years ago

does it work on the arduino UNO?

0
None
RodrigoI4

3 years ago

Thank you man. This is so funny and simple.

0
None
WhiteRenard

3 years ago

This is freaking awesome!

0
None
MauiJerry

3 years ago

Nice. However, if your code used a variable (or constant) for the buzzer pins, it would be a LOT easier to reuse in slightly different setups. For example the Sparkfun Protosnap comes with buzzer prewired on Pin2.

This is good coding practice - "Avoid Magic Numbers"