I have recently bought ten piezo speakers in the hope of making a piano with them and an Arduino Uno. When I went to search for a tutorial, I found absolutley nothing. Is it even possible to make a miniature piano with ten piezo speakers and have them all controlled by their own button?
Usually just one speaker is used.
Check Youtube, type arduino piano in the search bar and scroll down the hits.
I have seen those types before and was able to get them to work, but it would be nice to be able to play different cords at the same time. Like being able to play a C cord, not just an individual note.
You dont need multiple speakers to be able to play a chord, but you do need multiple tone generators that can all run at the same time. Thats a hard ask for a Uno as its not possible to create multiple simultaenous tones of differant frequency.
Although some piezo buzzers have their own driver built in, it's a product of the resonant frequency of the wafer within. Attempting to "tune" them is destined to fail.
Also, since they produce a fairly square wave form, trying to have them play in harmony with each other will sound exceedingly harsh. If you gave a present like that to one of my kids for xmas, it would be involved in an "accident" by boxing day. :)
Perhaps this project is similar enough to what you want to do: http://www.cs.nott.ac.uk/~jqm/?p=605
This third-party Tone library can play three simultaneous notes on an Arduino UNO. Six on an Arduino MEGA. https://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation
Try my method of using Blink Without Delay. See Reply #4 for code. Connect outputs to piezos (or buffer chip and then piezos if they need more current. Code was written for a '1284P, should be easy to adapt to '328P. http://forum.arduino.cc/index.php?topic=179761.0