Forum: Mikrocontroller und Digitale Elektronik Arduino UNO Problem serieller Empfang (RX)


von Tete (Gast)


Lesenswert?

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?

von Dieter S. (Gast)


Lesenswert?

Wie und wo schließt du denn die seriellen Daten am Atmega an?

von Tete (Gast)


Lesenswert?

Habe es wie an dem Arduino Board auch an eine MIDI Buchse angeschlossen 
die 2 an Masse , die 4 an 5volt über 220ohm und die 5 an Midi.

von Tete (Gast)


Lesenswert?

Das war natürlich die Belegung der Buchse ? am ATmega : Masse zu Masse , 
Midi in direkt an pin 2

von Draco (Gast)


Lesenswert?

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"?

von Tete (Gast)


Lesenswert?

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.

von Draco (Gast)


Lesenswert?

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?

von Tete (Gast)


Angehängte Dateien:

Lesenswert?

Die LEDs laufen sowohl auf dem Arduino als auch auf dem Steckbrett für 
jeweils 200ms.

von Draco (Gast)


Lesenswert?

Abblock Kondensator fehlt noch, dürfte aber nicht Grundlage des Problems 
sein. Einen 220er zwischen Midi und PD0 muss da nicht rein?

von Markus (Gast)


Lesenswert?

Der Midi-Eingang ist überlicheise mit Optokopller spezifiert:

http://libremusicproduction.com/tutorials/arduino-and-midi-in

von Tete (Gast)


Lesenswert?

Habe ich beim Arduino auch nicht...

von Markus (Gast)


Lesenswert?

Musst Du bauen oder kaufen:
http://www.exp-tech.de/sparkfun-midi-shield

von Tete (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Tete (Gast)


Lesenswert?

Okay , dann werde ich mich mal daran machen. Vielen Danke nochmal an 
alle Hilfesteller!

von Draco (Gast)


Lesenswert?

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?!

von Spannungsteiler (Gast)


Angehängte Dateien:

Lesenswert?

...ob über Optokoppler, oder ohne....
ein Bild hilft immer weiter :-)

von Draco (Gast)


Lesenswert?

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?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.