Arduino MIDI Input: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
<source lang="c"> | <source lang="c"> | ||
//Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250 | |||
int incomingByte = 0; // for incoming serial data | int incomingByte = 0; // for incoming serial data | ||
int temp = 0; | |||
int i1=0; | |||
void setup() { | void setup() { | ||
Serial.begin( | Serial.begin(31250); | ||
Serial3.begin( | Serial3.begin(31250); | ||
} | } | ||
void loop() { | void loop() { | ||
incomingByte = Serial3.read(); | incomingByte = Serial3.read(); | ||
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { | if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { | ||
Serial.println(incomingByte); } | |||
if (temp == 144 or temp == 0) { | |||
switch (incomingByte) { | |||
case 96: | |||
Serial.println("Note: 96"); | |||
break; | |||
case 95: | |||
Serial.println("Note: 95"); | |||
break; | |||
case 94: | |||
Serial.println("Note: 94"); | |||
break; | |||
case 93: | |||
Serial.println("Note: 93"); | |||
break; | |||
} | |||
} | |||
temp = incomingByte; | |||
Serial.println(incomingByte); | |||
i1=0; | |||
} | |||
} | } | ||
</source> | </source> | ||
Es ergibt sich folgendes Bild beim Drücken der Tasten am Keyboard: | Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard: | ||
<source lang="text"> | <source lang="text"> | ||
102 | 102 | ||
Zeile 44: | Zeile 67: | ||
</source> | </source> | ||
Schaltplan: http://www.rn-wissen.de/index.php/MIDI-Interface | |||
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> | [[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR> |
Aktuelle Version vom 6. März 2012, 11:37 Uhr
Experimente mit dem Arduino Mega und Midi Input.
Bauteile:
Diode: 1N 4148
Optokoppler: CNY 17F2
Widerstand: 220 Ohm, 2,2 kOhm
Lochrasterplatine: H25PR050
Din Buchse Halbrund
Arduino Sketch:
//Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250
int incomingByte = 0; // for incoming serial data
int temp = 0;
int i1=0;
void setup() {
Serial.begin(31250);
Serial3.begin(31250);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) {
if (temp == 144 or temp == 0) {
switch (incomingByte) {
case 96:
Serial.println("Note: 96");
break;
case 95:
Serial.println("Note: 95");
break;
case 94:
Serial.println("Note: 94");
break;
case 93:
Serial.println("Note: 93");
break;
}
}
temp = incomingByte;
Serial.println(incomingByte);
i1=0;
}
}
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
102
30
30
38
32
102
6
56
38
30
102
128
32
6
Schaltplan: http://www.rn-wissen.de/index.php/MIDI-Interface


