mikrocontroller.net

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


Autor: Tete (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Dieter S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie und wo schließt du denn die seriellen Daten am Atmega an?

Autor: Tete (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tete (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war natürlich die Belegung der Buchse 😉 am ATmega : Masse zu Masse , 
Midi in direkt an pin 2

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"?

Autor: Tete (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Tete (Gast)
Datum:
Angehängte Dateien:

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

Autor: Draco (Gast)
Datum:

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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Midi-Eingang ist überlicheise mit Optokopller spezifiert:

http://libremusicproduction.com/tutorials/arduino-...

Autor: Tete (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich beim Arduino auch nicht...

Autor: Markus (Gast)
Datum:

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

Autor: Tete (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Tete (Gast)
Datum:

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

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: Spannungsteiler (Gast)
Datum:
Angehängte Dateien:

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

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.