Realizar un piano usando una placa Arduino es un proyecto muy interesante y fácil de hacer. No va a ser una versión convencional de un piano, pero vas a realizar una que con la que podrás tocar unas cuantas melodías. Aquí, vamos a hacer un piano que se puede utilizar para tocar los tonos básicos de una canción. Para este proyecto no hace falta ser músico profesional, solamente tener un Arduino Uno y las ganas de realizar un divertido proyecto. !Vamos allá!
Componentes necesarios:
- Arduino Uno
- Un teclado
- Un Altavoz de 1W
- Unos pocos cables
Código
Antes de cargar este código a tu placa Arduino necesitas añadir la librería’ keypad.h’ a Arduino IDE. Para ello has de ir a la carpeta raíz del Arduino IDE y pegar el archivo descomprimido de descarga del enlace de arriba en la carpeta’ Libraries’.
Ten en cuenta lo siguiente: necesitas conectar el altavoz o el buzzer sólo al pin PWM. Aquí lo hemos conectado al pin 12, que es un pin PWM.
#include
#include "pitches.h"
#define GND 12
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
const int SPEAKER=11;
//define the symbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
{'0','1','2','3'},
{'4','5','6','7'},
{'8','9','A','B'},
{'C','D','E','F'} };
byte rowPins[ROWS] = {3, 2, 8, 0}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {7, 6, 5, 4}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad Keypad customKeypad =
Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup()
{
Serial.begin(9600);
pinMode(GND,OUTPUT);
digitalWrite(GND,LOW);
}
void loop()
{
Char customKey = customKeypad.getKey();
if (customKey=='0')
{
serial.println(customKey);
tone(SPEAKER,NOTE_C4,350);
}
if (customKey=='1')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_D4,350);
}
if (customKey=='2')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_E4,350);
}
if (customKey=='3')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_F4,350);
}
if (customKey=='4')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_G4,350);
}
if (customKey=='5')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_A4,350);
}
if (customKey=='6')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_B4,350);
}
if (customKey=='7')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_C5,350);
}
if (customKey=='8')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_D5,350);
}
if (customKey=='9')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_E5,350);
}
if (customKey=='A')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_F5,350);
}
if (customKey=='B')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_G5,350);
}
if (customKey=='C')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_A5,350);
}
if (customKey=='D')
{
serial.println(customKey);
tone(SPEAKER,NOTE_B5,350);
}
if (customKey=='E')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_C6,350);
}
if (customKey=='F ')
{
Serial.println(customKey);
tone(SPEAKER,NOTE_D6,350);
}
}
-
Arduino ATmega 2560 R3¡Oferta!
$20.50$19.00 -
Arduino Uno Wifi¡Oferta!
$15.00$13.00 -
Arduino Mini USB Nano V3.0 CH340 Chip Board 5V 16M + Cable¡Oferta!
$9.00$8.50