Hallo, bin noch recht neu in der µC-Programmierung...
Habe mir ein Programm geschrieben was Midi-Signale ausliest.(optisches
Metronom -> LEDs leuchten im Takt) Auf dem Arduino Board läuft auch
alles ohne Probleme. Dann habe ich die Stand-alone Variante mit Quarz
und Spannungsversorgung auf dem Steckbrett aufgebaut. Habe einen neuen
µC gebrannt (mit Bootlader) und auf dem Arduino Board getestet. Alles
i.O. Auf dem Steckboard funktioniert nur das testweise einmaliege
Ansteuern der LEDs und das Leuchten der "An"-LED. Brauche ich für die
serielle Kommunikation noch zusätzliche Hardware?
Jetzt mal langsam...
1.) Welches Midi-Gerät hastdu?
2.) Mit welchem Arduino hast du es gemacht?
3.) Wie schaut die Schaltung deines Steckbrettes aus?
(Nicht: So wie... - sondern hinsetzen und abmalen!) Was heißt bei
dir?
4.) Was heißt:
"funktioniert nur das testweise einmaliege Ansteuern der LEDs"?
Zu 1, Korg microStation ; zu 2, Arduino UNO , zu 3, wird nachgereicht ,
muss erst malen ? ; zu 4, mein Programm arbeitet so, dass zu Beginn jede
der 4 LEDs für 200ms an geht und dann aus. Damit ich sehe ob alle
funktionieren.
Zu 1:) Gut, okay.
Zu 2:) Okay, also ein Atmega328...
Zu 3:) Lass dir Zeit, und mal von Steckbrett ab! Ein Bild davon wäre
auch super.
Zu 4:) Gut, also die LEDs laufen auf dem Steckbrett für die genanten
200ms? Oder leuchten sie in einem anderen Zeitfenster (Länger) als auf
dem Uno?
Das heisst also auf dem Arduino Board ist ein Optokoppler, was ich in
der Stand alone Variante nicht habe? Denn mit dem A-Board alleine
funktionierts ja.
Mir ist noch aufgefallen, wenn ich den Controller vom A-Board
runternehme und dann Betriebsspannung ohne Controller anlege, liegt an
den Anschlüssen für RX und TX 5V an. Das habe ich auf meinem Steckbrett
nur bei TX, wenn der Controller drin ist.
Tete schrieb:> Das heisst also auf dem Arduino Board ist ein Optokoppler, was ich in> der Stand alone Variante nicht habe?
So isses. Hier ist die uralte originale Schaltung, die Midi Sender und
(für dich besonders interessant) den Midi Empfänger beschreibt:
https://www.midi.org/specifications/item/midi-din-electrical-specification
Beachte den Optokoppler im Empfänger. Auch wird eine etwaige Masse des
Senders nicht mit Masse des Empfängers verbunden. MIDI über DIN ist eine
Stromschleife mit LED Strom. Dabei gilt, ein aktive Leitung (0 am
Receiver) bedeutet Strom durch die LED des Optokopplers.
Beachte, das viele Optokoppler zu langsam sind, um 31,25 kBit sauber zu
empfangen. Es muss einer der etwas schnelleren Sorte sein, wie ein PC900
oder gar 6N137.
Matthias S. schrieb:> Tete schrieb:>> Das heisst also auf dem Arduino Board ist ein Optokoppler, was ich in>> der Stand alone Variante nicht habe?>> So isses.
Wo hat denn der Uno nen Optokoppler an den RX/TX Pins?!
Spannungsteiler schrieb:> ...ob über Optokoppler, oder ohne....> ein Bild hilft immer weiter :-)
Ja ich weiß, also ich sehe da keinen in der RX/TX Leitung. Also wird
wohl der TE auch keinen auf seinem UNO haben - und da lief es auch. Also
liegt das Problem wohl woanders.
Das ein Midi Port über Opto angebunden ist, sei ja erstmal dahin
gestellt. Ist ja richig. Aber warum lief es dann am UNO?
Draco schrieb:> Matthias S. schrieb:>> Tete schrieb:>>> Das heisst also auf dem Arduino Board ist ein Optokoppler, was ich in>>> der Stand alone Variante nicht habe?>>>> So isses.>> Wo hat denn der Uno nen Optokoppler an den RX/TX Pins?!
Ich hatte das mit dem Shield vermissstanden. Auf dem MIDI Shield ist ein
OK, auf dem Uno selbst natürlich nicht. Das kann zufällig trotzdem
funktionieren, wenn die Masse des Midi Senders mit der Masse des Uno
verbunden ist und dann noch der richtige Pin an der DIN Buchse des
Midisenders erwischt wurde.
Aber Masseschleifen zu vermeiden, ist ja der Sinn hinter der Optokoppler
Nummer.