Arduino MIDI Input: Unterschied zwischen den Versionen
Aus Technik-fan.de Wiki
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(6 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
Din Buchse Halbrund<BR> | Din Buchse Halbrund<BR> | ||
+ | '''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) { | ||
− | [[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]] | + | 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