Arduino Piano Project for Musical Creativity
The Arduino Piano Project is a delightful fusion of technology and music, offering an interactive and engaging experience for enthusiasts of all ages. The project utilizes buttons, LEDs, and a buzzer to simulate the piano-playing experience.
Each button corresponds to a unique musical note, triggering an LED and producing a delightful tone when pressed. The addition of a melody sequence adds a playful element, allowing users to enjoy a predefined tune at the press of a button.
This project not only serves as an introduction to basic electronics but also encourages musical exploration and creativity.
The circuit comprises three LEDs (ledpino1
, ledpino2
, ledpino3
), four buttons (botaoA
, botaoB
, botaoC
, botaoD
), and a buzzer (som
). Each button is connected to a specific note, triggering both an LED and a corresponding tone.
Button D activates a programmed melody. The simplicity of the circuit, with LEDs providing visual feedback, makes it an ideal beginner’s project, blending the joy of music with the excitement of hands-on electronics.
Component List:
Name | Quantity | Component |
---|---|---|
U1 | 1 | Arduino Uno R3 |
D1 | 1 | Red LED |
R1 R2 R3 R4 R5 R6 R7 | 7 | 1 kΩ Resistor |
S1 S2 S3 S4 | 4 | Pushbutton |
D2 | 1 | Yellow LED |
D3 | 1 | Green LED |
PIEZO1 | 1 | Piezo |
Arduino Code:
const int ledpino1 = 13;
const int ledpino2 = 12;
const int ledpino3 = 11;
const int botaoA = 4;
const int botaoB = 3;
const int botaoC = 2;
const int botaoD = 5; // Added button D
const int som = 9;
int estado_botaoA = 0;
int estado_botaoB = 0;
int estado_botaoC = 0;
int estado_botaoD = 0; // Added state for button D
int tom = 0;
// Melody
int melody[] = {262, 196, 196, 220, 196, 0, 247, 262};
int noteDurations[] = {4, 8, 8, 4, 4, 4, 4, 4};
void setup() {
pinMode(ledpino1, OUTPUT);
pinMode(ledpino2, OUTPUT);
pinMode(ledpino3, OUTPUT);
pinMode(som, OUTPUT);
pinMode(botaoA, INPUT);
pinMode(botaoB, INPUT);
pinMode(botaoC, INPUT);
pinMode(botaoD, INPUT); // Added button D
}
void loop() {
estado_botaoA = digitalRead(botaoA);
estado_botaoB = digitalRead(botaoB);
estado_botaoC = digitalRead(botaoC);
estado_botaoD = digitalRead(botaoD); // Added state for button D
if(estado_botaoA && !estado_botaoB && !estado_botaoC) { tom = 500; digitalWrite(ledpino1, HIGH); }
if(estado_botaoB && !estado_botaoA && !estado_botaoC)
{
tom = 1000; digitalWrite(ledpino2, HIGH);
}
if (estado_botaoC && !estado_botaoA && !estado_botaoB)
{ tom = 1500; digitalWrite(ledpino3, HIGH);
} if(tom > 0) { tone(som, tom); // Play tone on buzzer delay(200); // Wait for 200ms noTone(som); // Stop playing tone tom = 0; // Reset tone to zero digitalWrite(ledpino1, LOW); digitalWrite(ledpino2, LOW); digitalWrite(ledpino3, LOW);
} if (estado_botaoD)
{ // If button D is pressed for (int thisNote = 0; thisNote < sizeof(melody)/sizeof(int); thisNote++)
{ // Play melody int noteDuration = 1000 / noteDurations[thisNote]; tone(som,melody[thisNote],noteDuration);
int pauseBetweenNotes = noteDuration *1.30; delay(pauseBetweenNotes); noTone(som); } }
}
The Arduino Piano Project is a harmonious blend of education and entertainment, allowing individuals to explore the basics of programming, electronics, and music in a single endeavor.
Its simplicity and versatility make it an ideal starting point for creative minds eager to dive into the world of DIY electronics and musical expression.