Simple Electronic Piano

63,964

601

78

Intro: Simple Electronic Piano

Electronics can make sounds very easily with just a handful of parts. Here's how to make a simple piano using a 555 timer. I designed and tested this circuit using Tinkercad, and then built the real thing.

Here's everything you'll need:

  • 1 x 555 timer (Jameco)
  • 8 x pushbuttons (Jameco)
  • 1 x 100 nF capacitor (Jameco)
  • 1 x Resistor assortment - 390Ω, 620Ω, 910Ω, 2 x 1kΩ, 1.1kΩ, 1.3kΩ, 1.5kΩ, 6.2kΩ (Jameco)
  • 1 x Piezo buzzer (Jameco)
  • 22 AWG hookup wire (Jameco)
  • 1 x 9V battery connector (Jameco)
  • 1 x Solderless breadboard (Jameco)
  • 1 x 9V battery

Step 1: A Little Background

Danger: There be math ahead...

If you don't care about how this thing works and want to get straight to putting it together, then skip on ahead to the next step.

This piano uses the astable mode of a common 555 timer integrated circuit to produce the tone that drives the speaker (piezo buzzer). If you are curious about how a 555 timer works, and the different configuration modes, there's a good Instructable about it here.

Each musical note has a main frequency, which is how many times per second the thing producing the sound vibrates back and forth per second. The frequency produced by a 555 timer in astable mode relies on the values of the capacitor (C) and two resistors (RA & RB). This relationship is

I decided to design this so that RA and C are the same for all the notes (RA is 1kΩ, and C is 100 nF). This leaves RB to set the tone. So for any particular frequency,

The way this thing is wired, for any particular button RB is the value of all of the resistors from the button to the end of the resistor chain to the right added together. So it was a matter of finding the right chain of resistors to make this work. The following table shows how the resistors were chosen. Starting with the highest note, RB was calculated for each note, and commonly available resistors were chosen to approximate RB.

Notefreq. (Hz)RB (Ω)Resistor(s)
C5523131511.5kΩ + 1.3kΩ + 620Ω + 1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ
D5587116621.3kΩ + 620Ω + 1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ
E565910335620Ω + 1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ
F569897271.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ
G578486111kΩ + 910Ω + 390Ω + 6.2kΩ
A58807617910Ω + 390Ω + 6.2kΩ
B59886731390Ω + 6.2kΩ
C6104763256.2kΩ

Because of the choice to use commonly available resistors to approximate the values desired, the tones are a little bit off, but not by much.

Step 2: Try Before You Buy Parts

I first "built" this circuit in Tinkercad to try it out and make sure everything worked before putting the real circuit together. This allowed me to try different resistor values and configurations (for free!) before settling on the final design. I was even able to hear what it sounds like in my browser.

Here's the piano in Tinkercad. Press "Start Simulation" to try it out.

Step 3: Put It Together

After collecting the parts from the list at the beginning of this Instructable, it's time to put it together.

The long rows at the top and bottom of the breadboard are intended to to connect power (+9 volts and ground) from the battery to the rest of the circuit. These rows are electrically connected all of the way across and act as a wire between components pressed in their holes. Eventually, the black wire (ground) will be connected to the row at the bottom, and the red wire (+9 volts) will be connected to the row at the top. Don't do this yet. You will connect the battery last.

Similarly, each column of 5 holes in the center area is electrically connected. So any two things plugged into the same column are connected as if by a wire. Note that the columns above and below the empty area in the middle are electrically separate.

Start off by placing the 555 timer chip in the breadboard. It will be aligned so that the dot on top of it (pin 1 indicator) is in the lower left when you are looking at it. Place it toward the right side of the breadboard so that the pins straddle the empty channel running down the center of the breadboard. Carefully press it down with even pressure until all of the pins have entered their holes and the chip sits flat on the surface of the breadboard.

The pins of the 555 are numbered 1, 2, 3, 4 on the bottom from left-to-right and 5, 6, 7, 8 on the top from right-to-left. They run counter-clockwise starting at the lower left.

Connect pin 2 to pin 6 of the 555 using an appropriate length of hookup wire. You can see this as the green wire in the pictures above. Connect pin 1 to the ground row at the bottom. Connect pins 4 and 8 to the +9 volts row at the top of the board.

Carefully bend the leads of one of the 1kΩ resistors (brown-black-red) and connect it between pin 7 of the 555 and the +9 volt row at the top.

Connect the capacitor between pins 1 and 2 of the 555.

If the piezo buzzer that you have has bendable wires, then connect the positive (red) wire to pin 3 of the 555 timer. Connect the negative (black) wire to the ground row at the bottom. Otherwise, if your piezo has rigid pins, then place it over the breadboard to the right of the 555 with the negative pin somewhere on the ground row. Locate where the positive pin will connect with the breadboard, and put a hookup wire to connect that column with pin 3 of the 555. Then press the piezo in place.

Now, for the buttons. Start by putting a small hookup wire between pin 7 of the 555 and some column to the left (see the orange wire in the picture above). Locate the 6.2kΩ resistor (blue-red-red) and connect it between the other end of this hookup wire and another column to the left.

Place one of the pushbuttons so that it straddles the channel in the middle of the breadboard with the top-right pin on the same column as the resistor. Carefully push it into place so that it is fully seated in the breadboard. Connect an appropriate length hookup wire between the lower right pin of the button and pin 2 of the 555.

Now it is time for a quick test! Connect the black wire of the battery connector to the bottom (ground) row and the red wire to the top (+9 volt) row. Connect the battery to the battery connector. Try pressing the pushbutton and you should hear a tone! If you don't hear sound, then recheck all of your connections, make sure the battery is good and try again. After this test, disconnect the battery.

Now each of the remaining buttons are added from right-to-left. Connect the resistor from the column of the previous resistor to where the next button will be (4 rows to the left in the pictures above). Place the next button in place with the top-right pin at the other end of the resistor. Connect a small hookup wire between the lower-left pin of this button and the lower-left pin of the button to the right. Do this for all of the buttons. The resistors in order from right to left will be:

  • 390Ω (orange-white-brown)
  • 910Ω (white-brown-brown)
  • 1kΩ (brown-black-red)
  • 1.1kΩ (brown-brown-red)
  • 620Ω (blue-red-brown)
  • 1.3kΩ (brown-orange-red)
  • 1.5kΩ (brown-green-red)

After all the resistors and buttons are in place, reconnect the battery and start playing!

5 People Made This Project!

Recommendations

  • Audio Contest 2018

    Audio Contest 2018
  • Metalworking Contest

    Metalworking Contest
  • Tiny Home Contest

    Tiny Home Contest

78 Discussions

0
None
UngK

Question 3 months ago

What kind of piezo buzzer is the most suitable in this project? Because the link you provided is no longer available and I am quite confused while looking up on the Internet.

1 more answer
0
None
joshua.brooksZnastyHacker187

Answer 6 months ago

The resistances are very specific in order to get the proper tones. There's a section of the instructable that discusses how the resistance values were calculated.

0
None
AnnaA89

Question 6 months ago

Hi, I was trying to figure out how to solve for the fequency. I can not seem to get the right number when I do the equation.

4 more answers
0
None
joshua.brooksAnnaA89

Answer 6 months ago

Can you give me an example of what you are trying? Are you trying to solve for the frequency, given the resistances and capacitance?

0
None
joshua.brooksAnnaA89

Answer 6 months ago

Can you make the circuit public? I can't look at it otherwise.

0
None
AnnaA89joshua.brooks

Answer 6 months ago

I was looking for frequency, but now I understand. Thank however.

0
None
YuzukiD

8 months ago

I found this interesting to create for my 9th-grade physics project! However, why is there a need for a capacitor, how does it affect the sound produced in any way? Will there be a significant effect if I used a different capacitor (I only have 1000mF capacitor)? Thank you! I'll be sure to credit you in my project's write-up. :))

1 reply
0
None
joshua.brooksYuzukiD

Reply 8 months ago

The capacitor is critical to the functioning of this circuit. The period of the 555 timer depends on the amount of time it takes to charge and discharge that capacitor. Changing the value of this capacitor will alter the time. I gave the frequency formula for this in the instructable:
freq = 1 / (.7 *(Ra + 2Rb) * C)
The capacitor that you have will make the frequency too low to be audible with the resistors I used.

0
None
bazjr

9 months ago

Hi Joshua I made your 8 point tone generator expanded it to 24 steps to run in conjunction with a touch screen piano keyboard also one key at a time. I want to make a multiple tone generator to play a player piano style for next year . You mentioned using an Arduino board in one of communications below . Have you done yet and do you have plans for that as well?

2 replies
0
None
bazjrbazjr

Reply 9 months ago

Hi Joshua I tried to go to https://www.tinkercad.com/things/d7adTi8rcwT-polyphonic-piano. But it brought me back to here when I pushed the button to see the circuit.

0
None
joshua.brooksbazjr

Reply 9 months ago

Excellent! Here's a stab at a polyphonic version of the piano using Arduino: https://www.tinkercad.com/things/d7adTi8rcwT-polyphonic-piano. I'm sure that this can be improved. Unfortunately, it doesn't simulate well. I hope this works to get you started!

0
None
SarahL229

10 months ago

The Piezo buzzer I bought doesn't have any wires?? What should I do? I bought it from the store All Electronics for a school project and they only have ones without wires, what should I do?

1 reply
0
None
joshua.brooksSarahL229

Reply 10 months ago

Which piezo on their site did you purchase? Do you have access to a soldering iron and wire? If so, that's the most straightforward way to add wires, otherwise, the answer will depend on the specific piezo.

0
None
Harie Amjari

10 months ago

I have a problem sir, I want to use a 5 volt power to supply the circuit so I dont need to buy a 9 volt battery (means that I will just plug it in in the 5 volt usb charger,) and the problem in my circuit is when I turn it on without pressing any button the buzzer makes a square wave sound (I just guess the wave) and when I push the button, the tone will change like it has to be. I dont know the problem but there is a possibility that the problem is the 100nf capacitor (which I don't have and to be buy) or the power supply or even the two is the problem.

3 replies
0
None
joshua.brooksHarie Amjari

Reply 10 months ago

Replacing the 9V with 5V should not be a problem. It will still function, but will be quieter. The problem is the missing capacitor. It is a critical part of the circuit.

0
None
Harie Amjarijoshua.brooks

Reply 10 months ago

Thanks for reply! I tried several circuit to make this work and EUREKA the problem is my buzzer!When I replace the buzzer with a 8 ohm speaker it works just fine. as I know the astable mode in a ic produce a adjustble frequency and a buzzer already has it wave generator