Paso 2: Configuración del Hardware
Esquema y foto adjuntadas. Nota: el esquema es el trabajo de computación física de ITP
Básicamente 's 5V al interruptor, del interruptor al pin de control, resistencia de 10K del pin de control a la tierra
El MIDI toma su pin 5 a pin serial, pin4 a 5V a través del resistor de 220
Carga el siguiente bosquejo en el Arduino:
{{{
/ * Convertir Arduino a un controlador MIDI con tantas entradas digitales
* como usted necesita.
*
* Este esbozo está configurado para enviar notas MIDI 2 en canal 5, de MIDI
* pero pueden reconfigurarse fácilmente para otros canales y notas
*
* Creado 03 de noviembre de 2008
* Por Hyeki Min
*
* Modificado 14 de mayo de 2009
* Por Petyr Stretz
* Cambiado lógica del interruptor de forma que el pasador de alto y bajo la
* Notas de jugar como un teclado, pernos innecesarios que se quitado, cambiado
* salida canal MIDI a 5
*
* Modificado 15 de abril de 2014
* Por Petyr Stretz
* Instructables usuario Andrew.Wilson.7 reportó BYTE es no
* ya se usa en Arduino 1.0 o posterior. Quitado de noteOn()
*/
definir los pines que utilizamos, puerto MIDI está siempre en Arduino el pin 1 (TX)
int switchPin1 = 2;
int switchPin2 = 3;
Notas midi general
char note1 = 60; C media
char Nota 2 = 62; D
Variables
int switchState1 = bajo;
int switchState2 = bajo;
int currentSwitchState1 = bajo;
int currentSwitchState2 = bajo;
void setup() {}
establecer los Estados de los pines de I/O:
pinMode (switchPin1, entrada);
pinMode (switchPin2, entrada);
establecer velocidad MIDI:
Serial.Begin(31250);
}
void loop() {//switchPin1
currentSwitchState1 = digitalRead(switchPin1);
Si (currentSwitchState1 == alto & & switchState1 == LOW) / / push
Nota en canal 5 (0x94), algunos en cuenta valor (Nota), velocidad media (0x45):
noteOn (0x94, note1, 0x45);
Si (currentSwitchState1 == baja & & switchState1 == HIGH) / / release
Nota en canal 5 (0x94), algunos en cuenta valor (Nota), velocidad silenciosa (0 x 00):
noteOn (0x94, note1, 0 x 00);
switchState1 = currentSwitchState1; switchPin2
currentSwitchState2 = digitalRead(switchPin2);
Si (currentSwitchState2 == alto & & switchState2 == LOW) / / push
Nota en canal 5 (0x94), algunos en cuenta valor (Nota), velocidad media (0x45):
noteOn (0x94, Nota 2, 0x45);
Si (currentSwitchState2 == baja & & switchState2 == HIGH) / / release
Nota en canal 5 (0x94), algunos en cuenta valor (Nota), velocidad silenciosa (0 x 00):
noteOn (0x94, Nota 2, 0 x 00);
switchState2 = currentSwitchState2;
} / / Envía un mensaje de nota MIDI.
{} void noteOn (cmd de char, char data1, data2 char)
Serial.Print(CMD);
Serial.Print(data1); Serial.Print(data2);
}
}}}