Arduino MIDI Input: Unterschied zwischen den Versionen

Aus Technik-fan.de Wiki
Wechseln zu: Navigation, Suche
 
(4 dazwischenliegende Versionen des gleichen 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>
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, 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