Serielle Schnittstellen Genuino Mega2560

Hallo zusammen,

Bin auch ein Neuling was das Thema Genuino/Arduino angeht.

Ich hoffe ihr könnt mir bei meinem Problem helfen.

Im folgenden Bild seht ihr einen Sketch, den Seriellen Monitor des Genuino Mega2560 und ein Serielles Ausgabefenster über Putty.
Wie man schnell im Sketch sehen kann soll an beide Seriellen Empfänger, also Putty und Monitor vom Genuino, ein Text gesendet werden , wenn der Taster an PIN 11 gedrückt wird.
Die LED an PIN 21 soll mir nur eine optische Rückmeldung geben , dass der Taster auch wirklich gedrückt wurde.
Jetzt mein Problem:

Wie ihr in den Fenstern von Putty und vom Seriellen Monitor sehen könnt, ist dort ein gewaltiger Unterschied der Datenausgabe.

Nun meine Frage: Wo liegt der Fehler, dass Putty nur Datenmüll anzeigt?

Momentane Einstellungen in Putty für die Serielle Schnittstelle :
Baudrate 9600
Parität: keine
Stopbits : 1
Flusskontrolle: keine

Experimentierversuche an Parität ,Stopbits und Flusskontrolle erbrachte auch keinen Erfolg.

Für eine Lösung wäre ich euch sehr dankbar.

Freundliche Grüße

Ich mag keine Bilder von Sketchs, ich mag Kopien des Sketches.
Wie hast Du TX1 e RX1 mit dem PC verbunden?

Grüße Uwe

Momentane Einstellungen in Putty für die Serielle Schnittstelle :
Baudrate 9600
Parität: keine
Stopbits : 1
Flusskontrolle: keine

Sollte richtig sein. Die Voreinstellung bei den seriellen Schnittstellen ist 8N1

Du schreibst nichts über den TTL/Seriell Wandler und wie das dann als COM2 erscheint...

String - Objekte sind zwar nur Ballast, sollte aber gehen.
Schonmal mit einem Testprogramm probiert

if ( Serial.available() ) Serial1.write(Serial.read());

einzelne Zeichen vom Serial Monitor an dein COM2 zu senden?

Hallo Uwe,

Rx an Tx und Tx an Rx.Also so wie es sich gehört. :slight_smile:

Hallo Michael

Was genau ist gemeint mit TTL/Seriell Wandler?

Meinst du damit einen RS232 auf USB-Wandler?

Dieser wird im Gerätemanager als "Prolific USB-to-Serial Comm Port" angezeigt.

Das Testprogramm wie du angefragt hast, habe ich auch getestet. Bei einzelnen Zeichen wird auch nur "Datenmüll" übertragen.
(Zum Beispiel wird die gesendete Ziffer "1" als "g" ausgegeben. Dies gilt für beide Richtungen.

Danke für die schnellen Reaktionen.

Rufaufbau__an_GE200_senden.ino (798 Bytes)

Dann musst du noch von 5V TTL Level auf RS232 Level wandeln.

Oder gleich einen USB -> TTL Seriell Wandler verwenden.

RS232 hat Idle (Stopbit) bei -3 ... -15V und Space (Startbit) bei +3 .. +15V
Die Arduino Pins haben HIGH (Stopbit) bei +5V und LOW (Startbit) bei 0V

michael_x:
Dann musst du noch von 5V TTL Level auf RS232 Level wandeln.

Oder gleich einen USB -> TTL Seriell Wandler verwenden.

RS232 hat Idle (Stopbit) bei -3 ... -15V und Space (Startbit) bei +3 .. +15V
Die Arduino Pins haben HIGH (Stopbit) bei +5V und LOW (Startbit) bei 0V

Wie wird das gemacht? Das Umwandeln meine ich?

PS: Habe in meinem Vorherigen Post noch den Sketch hinzugefügt.

Sowas wird zwar auc gern mal mit RS232 beworben, liefert und versteht aber nur 0/5V Signale.

Ist deiner sowas ähnliches, oder hat er einen echten RS232 Anschluss ?

RS232 -- TTL Wandler gibt es natürlich auch: MAX232

Hallo,

nein, nein, nein. :wink: Der Profilic ist doch schon der Wandler. USB zu RS232 TTL. Er wird sicherlich sowas haben.
~~http://www.ebay.de/itm/RS232-USB-Adapter-Kabel-IC-PL2303HX-5V-TTL-Seriell-Pegel-fur-Arduino-/201482917436?hash=item2ee951563c:g:8rwAAOSwr41XIQFi~~
Hier wird irgendwas anderes nicht stimmen. Massen nicht verbunden o.s.ä. ?
Oder der Adapter ist defekt?
Du kannst auch mal TX mit RX vertauschen.

Im folgenden Bild mein USB-Serial-Adapter.

(Zum Beispiel wird die gesendete Ziffer "1" als "g" ausgegeben. Dies gilt für beide Richtungen.

Scheint schon invertiert zu sein:

Mit Stopbits und einem Startbit sind die zwei Buchstaben ziemlich das Gegenteil voneinander :wink:

11101001100111 = '1' 0x31
11101110011011 = 'g' 0x67

Aber fehlende Masse ist auch sehr wahrscheinlich :wink:

Bild sehe ich z.Zt. auch nicht

Masse ist ebenfalls angeschlossen. :wink:

Musste das Bild umwandeln, Datei war zu groß zum uploaden. :slight_smile:

Bild jetzt im Vorherigen Post vorhanden.sogar zweimal...

Bekomme ständig Meldungen, dass ich zu viel in einer 5-Minuten-Periode sende.

Meine 5 Minuten scheinen langsamer zu laufen , als die dieses Servers. :o

Der 9polige D-SUB Stecker ist für mich ein Hinweis dafür, dass du da was suboptimales für den Arduino hast.
:frowning:

Also entweder einen MAX232 dazwischen oder einen anderen Adapter verwenden.

Wenn Du eine RS232 Schnittstelle an TX1 bzw RX1 des Arduino MEGA verbindest machts du:

  1. den RX eingang kaputt
  2. der TX 0 und 5V ausgibt un der Adapter sich ca 12V und -12V erwartet.

Grüße Uwe

Hallo,

hiermit möchte ich mich entschuldigen für meinen Mist, habe nicht erahnen können das solche älteren Adapter noch im Einsatz sind. Sorry!

Vielen Dank für Eure Unterstützungen und Hilfestellungen. Werde mich dann mal nach einem geeigneten Adapter umschauen. Ich dachte immer Seriell ist Seriell. Dass es da solche Unterschiede gibt wusste ich nicht. Wieder was dazugelernt. Danke Euch.

Seriel ist seriel auf Protokollseite (wie dei Daten übertragen werden). TTL und RS232 sind verschieden bezüglich der verwendeten Spannungen.
Grüße Uwe

Alles klar.Danke.Habe jetzt einen TTL-Adapter. Für 3,95€ bei pollin.Mein Genuino hat mir meinen Fehler wohl verziehen. Die Serial1-Pins haben es überlebt.

Kann mir vielleicht jemand sagen, ob und wie ich den Genuino anstatt 8N1 , 7E1 "sprechen" lassen kann?

Mein Gegenstück kann nur 19200 Baud 7E1 "sprechen" und "hören."

hi,

gruß stefan

Perfekt! Auch an dieser Stelle ein Dankeschön.