Maker Pro
Arduino

How to Make a Music Keyboard With Arduino

April 30, 2015 by Sandheep Gopinath
Share
banner

Make your own musical instrument out of an Arduino.

Arduino Keyboard - Piezo buzzer tutorial

Making cool things with an Arduino is something, but making musical instruments out of an Arduino is something else! So behold, here comes the Musical-duino, an Arduino keyboard. To see what this does, check out the demo video at the bottom of this page.

They say that “You can become anyone”, so why not become Beethoven or Mozart? The only limit is your imagination.

The DIY Arduino keyboard or the Musical-duino has a few buttons. Pressing them makes different tones according to the pulse sent to it by the Arduino. Your Arduino can be used to make different instruments. It can even be used to make a proximity sensing device to help blind people, a device that detects obstacles and makes different voices depending on what they're approaching. You can also make a Theremin out of an Arduino by attaching LDRs.

After making one you could play the Legend of Zelda and upload the video to YouTube so that we can share your work of art here on our website. (Somebody please do it!)

How the Arduino Keyboard Works

Arduino-Keyboard-Circuit

One end of each push button is connected to the VCC and the other end to three analog pins. The data from the push buttons are read by the analog pins. This is further compared with a threshold voltage.

Don’t know what’s a threshold voltage? Don’t you worry, we’re here to explain it to you!

Even when the switch is open, the analog pin connected to the button shows a value. When the button is pressed, the analog value reading changes. The value we get when the switch is open is usually referred as the threshold voltage.

In later steps, each button is identified in comparison. Corresponding frequencies are produced online Piezo buzzer using the Arduino.

Connecting the Push Buttons as Keys for the Arduino Keyboard

Push button connection

Connect all the 3 pins of the push buttons to the 5 volt output on the Arduino. It's helpful to have a clearer picture of the Arduino's structure. After connecting the buttons to the 5 volt output, the other end goes to analog 1, 2 and 3. After doing the connections, upload the following code to your Arduino:

void setup()
{
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
Serial.begin(9600);
}
int a,b,c;

void loop()
{
a=analogRead(A0);
b=analogRead(A1);
c=analogRead(A2);

Serial.print(a);
Serial.print(‘ ‘);
Serial.print(b);
Serial.print(‘ ‘);
Serial.print(c);
}
Next, do the following:
 
  1. Upload the code.
  2. Open the Serial Monitor.
  3. Note the analog values on the serial monitor without pressing the buttons as the threshold.
  4. Press the buttons and find the change in analog readings.

Connecting the Piezo Buzzer

Piezo Buzzer for Arduino keyboard

Connect the Piezo buzzer as shown positive (red) goes to the 3rd digital pin and negative (black) goes to the GND pin. After connecting the piezo buzzer, upload the following code to your Arduino:

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

void loop()
{
tone(3,296,10);
delay(1000);
noTone();
}
tone(pinNumber,frequency,duration) //plays a tone of frequency defined on the piezo buzzer connected to pinNumber 3.

noTone() //sets the piezo buzzer into ideal mode with no tone.

Note:
 The piezo positive can only be connected to the PWM pins or the required output cannot be obtained.

Putting Your Arduino Keyboard Together

Final Assembly for the Arduino keyboard

Now upload this sketch to your Arduino after completing the connections above:

void setup()

{

pinMode(A0,INPUT);

pinMode(A1,INPUT);

pinMode(A2,INPUT);

Serial.begin(9600);

}

int a,b,c;

int threshold=400;

void loop()

{

a=analogRead(A0);

b=analogRead(A1);

c=analogRead(A2);

if(a>threshold)

tone(3,200,10);

else if(b>threshold)

tone(3,296,10);

else if(c>threshold)

tone(3,360,10);

else

noTone();

}

And Voila!!!! There you go. By now you should be able to see the big picture. If not, then you might want to read the whole thing again. The image in the 3rd step might turn out to be very helpful to understand about the assembly of this project. Now, check out the demo video of this project:

This project can be enhanced by using LDRs to replace the buttons, then you can play tones without even touching the board!

There are lots of ways to build on this project!

Related Content

Comments


You May Also Like