Arduino MIDI Input: Unterschied zwischen den Versionen

Aus Technik-fan.de Wiki
Wechseln zu: Navigation, Suche
 
(8 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
 
Widerstand: 220 Ohm, 2,2 kOhm<BR>
 
Widerstand: 220 Ohm, 2,2 kOhm<BR>
 
Lochrasterplatine: H25PR050<BR>
 
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund
+
Din Buchse Halbrund<BR>
  
[[Datei:midi1.png|Platine]]
+
'''Arduino Sketch:'''
 +
 
 +
<source lang="c">
 +
//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;
 +
  }
 +
}
 +
</source>
 +
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
 +
<source lang="text">
 +
102
 +
30
 +
30
 +
38
 +
32
 +
102
 +
6
 +
56
 +
38
 +
30
 +
102
 +
128
 +
32
 +
6
 +
</source>
 +
 
 +
Schaltplan: http://www.rn-wissen.de/index.php/MIDI-Interface
 +
 
 +
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
 +
 
 +
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
 +
 
 +
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>

Aktuelle Version vom 6. März 2012, 10: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

Platine von vorne

Platine von hinten

Belegung des DIN Steckers - MIDI Input