Arduino MIDI Input: Unterschied zwischen den Versionen

Aus Technik-fan.de Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 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(57600);
   Serial.begin(31250);
   Serial3.begin(57600);
   Serial3.begin(31250);
}
}
 
void loop() {
void loop() {
 
   incomingByte = Serial3.read();
   incomingByte = Serial3.read();
   if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering
   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>
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

Platine von vorne


Platine von hinten


Belegung des DIN Steckers - MIDI Input