Ich brauche Hilfe bei einer MIDI Input Schaltung?
Ich will eine MIDI Input Schaltung mit Arduino bauen doch jetzt ist mir folgendes Problem aufgefallen: Der MIDI Befehl kommt nicht bei dem Arduino an. Alles sollte eigentlich funktionieren aber es geht nicht. Alle Bauteile funktionieren einwandfrei und jetzt habe ich mich gefragt ob man den Optokoppler in der Schaltung überhaupt benötigt? Schreibt mir gerne Antworten oder Lösungen für das Problem.
2 Antworten
Da müsste man erst mal den Schaltplan haben, deinen Aufbau kennen und ggf auch dein Programm... Aber ja, Optokoppler dienen grundsätzlich der galvanischen Trennung was sehr sehr oft von Vorteil ist, um Masseschleifen, Potentialverschleppung usw wirkungsvoll zu vermeiden. Ggf kann sonst was kaputt gehen, wenn fremdpotentiale falsch ins Spiel kommen... Daher dürfte vermutlich der Optokoppler als Schutz davor dienen...
Nun, das ist ja nur die Pegelumsetzung über den Optokoppler. Hast Du am RX-Pin das Datenprotokoll sehen können? Wie ist das ganze am Arduino angeschlossen? Wie ist dein Programm auf dem Arduino zum einlesen und weiterverarbeiten des Midi-Protokoll? Was gibt der SerialMonitor aus, wenn du das eingelesene ausgibst? Mit nur Bruchstücken und Teilausschnitten kann Dir keiner weiter helfen...
Der Arduino sagt nichts am SerialMonitor außer wenn ich eben manuell 5v anlege. Mit dem MIDI Kabel geht es nicht. Das ist ja das komische
Und es liegt nicht am MIDI Kabel, das weiß ich
Feste 5V dürften eig nichts ausgeben, da Midi ein Protokoll ist und nicht nur 5V da oder nicht. Da werden Daten übertragen. Das ist eine Schnittstelle, die über eine serielle Schnittstelle eingelesen und verarbeitet werden müssen. Du musst folglich die eingelesenen Datenpakete verarbeiten und den Steuerbefehlen entsprechend Funktionen zuweisen, was der Arduino dann machen soll.
Das weiß ich schon aber dadurch dass es nicht funktioniert hat hab ich erst mal ausprobiert, ob überhaupt Strom am Arduino ankommt
Die Daten kommen zu schnell, um diese digital zu erfassen. Das sind ja 31200 Bits/sek. Also 31200 mal high bzw low... Das siehst Du nicht als Binäreingang. Du musst schon eine serielle Verbindung einrichten und mit dieser Geschwindigkeit die Schnittstelle auslesen...
mit dem pitch geht es aber, da da fast immer Daten kommen
Und ich habe eh festgestellt das der RX Anschluss des arduinos defekt ist somit ist das Problem gelöst. Danke für die Hilfe
Der RX wird auch vom PC belegt (Also Pin 0 und 1 sind die USB-Anbindnung zum PC), wenn Du eine Verbindnung mit diesem hast. Du musst eine SoftwareSerial nehmen oder einen Arduino mit zwei seriellen Schnittstellen... Muss also nicht unbedingt defekt sein...
Es ist ein Arduino Nano Every falls das etwas hilft
Ok, der hat zwei getrennte Schnittstellen. Eine ist nur am USB-Controller und die zweite ist auf Pin 0 und 1 (RX und TX) geführt... Jetzt weiß ich nur nicht, ob die serielle Schnittstelle, da es zwei sind, gezielt angesprochen werden muss. Sprich, mit Serial.Begin evt die USB ansprichst (für SerialMonitor), und für die zweite serielle Schnittstelle einen extra Befehl/Ergänzung verwenden musst...
Mal gerade nachgelesen...
Serial.Begin ist die USB-Serial
Serial1.Begin ist die RX0 und TX0 auf dem Pinheader...
Wenn DU also den RX0 vom Pinheader nutzt, musst Du die Serial1 mit 31250 Baud initialisieren... und alle Befehle/Abfragen auch auf Serial1 tätigen...
Ja, den Optokoppler braucht man. MIDI ist aus gutem Grund eine galvanisch getrennte Stromschleife.
Prüfe die Schatung, ob alles korrekt verdrahtet ist und die Widerstände den richtigen Wert haben. Miss dann am RX Pin (Oszilloskop), ob da ein ordentliches Rechtecksignal vorhanden ist. Könnte auch ein Softwarefehler sein.
Ich habe schonmal eine LED an den Ausgang des midi Steckers angeschlossen und das hat funktioniert.
Dann hab ich den Anschluss am Optokoppler mit 5v verbunden, das hat auch funktioniert. Nur alles zusammen geht nicht.
Dann hab ich den Anschluss am Optokoppler mit 5v verbunden
Welchen Anschluss denn? Hoffentlich nicht 5V zwischen Pin 2 und 3 angelegt, dann brennt die LED im Optokoppler durch.
Wenn du den MIDI Ausgang des angeschlossenen Gerätes schon mit einer LED "sichtbar" gemacht hast, kannst du diese LED ja auch mal an die von dir gezeigte Schaltung dranhängen (zwischen "RX Pin" und GND). Da sollte das MIDI Signal ebenfalls an der LED erkennbar sein, allerdings invertiert. Die Invertierung muss dann in Software gelöst werden.
Und prüfe auch nochmal nach, ob die Schutz-Diode 1N914 richtig herum eingebaut ist. Wenn die falsch herum gepolt ist, geht's nicht.
Und auch wenn die Pins an der MIDI Buchse verwechselt wurden (Pin 4 und Pin 5) funktioniert es auch nicht.
Ich habe die 5v schon an pin 2 und 3 angelegt, aber mit einem wiederstand dass die LED nicht durchbrennt
Schaltplan ist oben ⬆️