arduinoknight:
Wo mache ich den Fehler?
Den Fehler dürftest Du bei der Hardware machen.
Eine serielle Schnittstelle stellt immer eine Point-to-Point Verbindung zwischen ZWEI Teilnehmern her. Der TX-Sendepin des einen Teilnehmers ist mit dem RX-Empfangspin des anderen Teilnehmers verbunden.
Bei den meisten Arduino-Boards (z.B. UNO, MEGA) ist "Serial" bereits mit einem USB-Seriell Chip verbunden, der über das USB-Kabel eine Verbindung ZUM PC herstellt. Da sind also Pin-0/1 bereits reserviert für die serielle Verbindung zum USB-Seriell Treiberchip auf dem Arduino-Board und für eine serielle Verbindung des Boards zum PC.
Du kannst bei solchen Boards "Serial" nicht für eine serielle Verbindung zu einem anderen seriellen Gerät verwenden. Damit testest Du allenfalls, welcher Schnittstellentreiber stärker ist: Der vom USB-Seriell Chip auf dem Arduino-Board, oder der auf Deinem anderen Gerät. Also Kurzschluss gegen Kurzschluss - möge der stärkere mit seinen gesetzten Bits gewinnen!
Wenn Du keinen Treiberwettkampf durchführen möchtest, um die stärksten Ausgangstreiber zu ermitteln und aus welcher Schnittstelle als erstes Rauch herauskommst, darfst Du das so nicht zusammenschließen.
Also zeig mal zuerst Deine Schaltung vor, aus der hervorgeht welches Arduino-Board Du verwendest und was Du genau wo angeschlossen hast! Und wenn da dann rauskommt, dass z.B. das Arduino-Board ein UNO ist, dessen USB-Anschluss Du mit einem PC verbunden hast, aber bei dem Du auch Pin-0 und Pin-1 mit Deiner MIDI-Schnittstelle verbunden hast, dann hast Du einen Kurzschluss gebastelt.
Wenn Du MIDI-Daten von etwa einer MIDI-Schnittstelle empfangen und an den PC weiterleiten wolltest, würde das z.B. so aussehen:
void setup(){
Serial.begin(31250); // initialisiere die Schnittstelle "Serial" zum PC
Serial1.begin(31250); // initialisiere die Schnittstelle "Serial1" zum MIDI-Gerät
}
Wozu Du natürlich erstmal ein Arduino-Board mit zwei seriellen Schnittstellen haben müßtest. Oder Du müßtest die zweite serielle Schnittstelle in Software emulieren, wenn das Board keine zweite serielle Schnittstelle hat.