Introduction: 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.
|Note||freq. (Hz)||RB (Ω)||Resistor(s)|
|C5||523||13151||1.5kΩ + 1.3kΩ + 620Ω + 1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ|
|D5||587||11662||1.3kΩ + 620Ω + 1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ|
|E5||659||10335||620Ω + 1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ|
|F5||698||9727||1.1kΩ + 1kΩ + 910Ω + 390Ω + 6.2kΩ|
|G5||784||8611||1kΩ + 910Ω + 390Ω + 6.2kΩ|
|A5||880||7617||910Ω + 390Ω + 6.2kΩ|
|B5||988||6731||390Ω + 6.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!
We have a be nice policy.
Please be positive and constructive.
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.
Try this one instead: https://www.jameco.com/z/AZ-1440E-P-LF-Kobitone-Au...
would it work with any resistor?
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.
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.
Can you give me an example of what you are trying? Are you trying to solve for the frequency, given the resistances and capacitance?
I have one more thing that I need help with. I made the circuit in 123d circuits and no sound is coming out of it. I started the simulation. Everything is intacted, so I am a little confused. Here's the link
Can you make the circuit public? I can't look at it otherwise.
I was looking for frequency, but now I understand. Thank however.