Hola,
Hoy os traigo el esquema y el código para construir un piano MIDI con arduino.
Este proyecto solo incluye dos notas (Si y Do), para poner más solo habría que copiar y modificar los datos correspondientes del código hasta que nos quedemos sin pines en el arduino o si no, pues a multiplexar.
Ingredientes:
1 arduino
2 botones
2 resistencias de 10k
1 resistencia de 220 Ohms
1 conector Midi
cable, soldador, estaño...
Código
Esquema
cualquier duda,pregunta, y sobre todo, cualquier mejora es bienvenida
Saludos
Hoy os traigo el esquema y el código para construir un piano MIDI con arduino.
Este proyecto solo incluye dos notas (Si y Do), para poner más solo habría que copiar y modificar los datos correspondientes del código hasta que nos quedemos sin pines en el arduino o si no, pues a multiplexar.
Ingredientes:
1 arduino
2 botones
2 resistencias de 10k
1 resistencia de 220 Ohms
1 conector Midi
cable, soldador, estaño...
Código
Alguien escribió:
const int buttonDoPin = 2;
const int buttonSiPin = 3;
int noteDo = 71; //MIDI note 69=A (440hz)
int noteSi= 72;
int buttonDoState = 0;
int buttonSiState = 0;// current state of the button
int lastButtonDoState = 0;
int lastButtonSiState = 0;
int val;
void setup() {
// initialize the button pin as a input:
pinMode(buttonDoPin, INPUT);
pinMode(buttonSiPin, INPUT);
// initialize serial communication:
// Set MIDI baud rate:
Serial.begin(31250);
}
void loop() {
buttonDoState = digitalRead(buttonDoPin);
if (buttonDoState == 0)
{ noteOn(0x90, noteDo, 0x00);}
else if (buttonDoState == lastButtonDoState)
{}
else { noteOn(0x90, noteDo, 0x45);}
buttonSiState = digitalRead(buttonSiPin);
if (buttonSiState == 0)
{ noteOn(0x90, noteSi, 0x00);}
else if (buttonSiState == lastButtonSiState)
{}
else { noteOn(0x90, noteSi, 0x45);}
lastButtonDoState = buttonDoState;
lastButtonSiState = buttonSiState;
}
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(byte (cmd));
Serial.write(byte (pitch));
Serial.write(byte (velocity));
}
Esquema
cualquier duda,pregunta, y sobre todo, cualquier mejora es bienvenida
Saludos