SoftwareSerial Lib funktioniert nicht

Gestern abend wollte ich die SoftwareSerial Library erforschen. Leider hat nichts funktioniert, nicht einmal das Beispielsketch. Der Serial Monitor zeigt einfach nichts an. Mein Uno funktioniert, der Code wurde direkt von der Arduino-Website gepastet, die Baudraten stimmen überein und eine externe Beschaltung gibt es bei diesem Sketch nicht. Also muss es wohl an der Arduino Software bzw. an der Lib liegen. Weiß da jemand was genaueres?

Verdrahtungsfehler kannst du ausschließen? Bedenke dass RX und TX jeweils gekreuzt sein müssen. Ist ein häufiger Anfängerfehler, passiert mir auch gelegentlich. :wink:
Ansonsten: Passen die Pegel? Sollte alles TTL sein, Masseverbindung muss auch vorhanden sein.

sth77:
Verdrahtungsfehler kannst du ausschließen? Bedenke dass RX und TX jeweils gekreuzt sein müssen. Ist ein häufiger Anfängerfehler, passiert mir auch gelegentlich. :wink:
Ansonsten: Passen die Pegel? Sollte alles TTL sein, Masseverbindung muss auch vorhanden sein.

Ja, kann ich alles ausschließen, das Beispiel braucht keine externe Beschaltung XD

Und jetzt wundert es dich, dass du im Terminal keine Antwort "Hello, world?" bekommst?

[edit] Wenn das das Problem ist, solltest du noch einmal überlegen, was das Programm in der loop genau tut: Es gibt den Datenstrom von dem einen Port zu anderen weiter, jedoch mit einer anderen Bitrate.
In der setup wird zwar ein "Hello, world?" ausgegeben, allerdings an den RX/TX-Pins 2 und 3! Und da hängt kein Schnittstellenwandler dran, der die Verbindung zum PC herstellt. Problem gelöst?

sth77:
Und jetzt wundert es dich, dass du im Terminal keine Antwort "Hello, world?" bekommst?

Ja, da steht doch "There is no circuit for this example."

Und der Code

mySerial.begin(4800);
mySerial.println("Hello, world?");

müsste doch ein "Hello, world?" im Serial Monitor ausspucken?

Es gab eine kleine Überschneidung mit meinem editierten Beitrag, hab es dort näher ausgeführt...

sth77:
In der setup wird zwar ein "Hello, world?" ausgegeben, allerdings an den RX/TX-Pins 2 und 3! Und da hängt kein Schnittstellenwandler dran, der die Verbindung zum PC herstellt. Problem gelöst?

Warum dann das Beispiel? Welchen Sinn ergibt ein "mySerial.println("Hello, world?");" wenn im Beispiel "There is no circuit for this example." steht und ich gar nichts sehen kann?

Mein Problem: Pin 0 und 1 brauche ich später für das MIDI Shield, das ist fest verdrahtet. Problem: Über Pin 0 und 1 kann ich nicht debuggen, weil der Serial Monitor unverständlicherweise die MIDI Baudrate 31250 nicht unterstützt. Also dachte ich mir: SoftwareSerial für Debugtexte benutzen. Pustekuchen?

Wird echt Zeit, dass das bestellte Display kommt :wink:

"There is no circuit for this example." heißt nicht "There is no circuit necessary for this example." :wink:

Alternativ gibt es ja auch kostengünstige Schnittstellenwandler von USB auf TTL, die man auch an der softwareseitigen schnittstelle anschließen kann.

Ich bleibe dabei: SoftwareSerial funktioniert entweder nicht oder das Beispiel ist sinnfrei. Hab mal gegoogelt, anscheinend gibt es seit der 1.0 tatsächlich Probleme mit dieser Lib, die es früher nicht gab. Wenn ich was neues erfahren habe, werde ich es hier posten.

Naja, es sind eben Beispiele, die oft nicht sehr praxisnah sind. Hier könnte man z.B. ansetzen, um eine GPS-Maus (ich hab eine von Navilock, die TTL-Pegel mit 4800 baud auswirft) an die Software-Schnittstelle anzuschließen und den Datenstrom 1:1, jedoch mit 19200 baud auszugeben. Oder einlesen, vom Arduino aufarbeiten und nur gefilterte/geänderte Datensätze auswerfen. Die Beispiele dienen somit nur als Grundlage und zeigen was möglich ist - wenn man sie denn als solches verstanden hat.

Conversely, anything received on the virtual RX is sent out over the hardware TX.

Heisst soviel wie: Kontrolliere und stelle zweifelsfrei fest, dass in dem vorliegenden Testaufbau absolut NICHTS zu senden gibt, weil es nichts zu empfangen gibt.

Hrmpf :wink:

Hättest du dir einen Mega besorgt, wären da gleich mal 3 Schnittstellen an Bord, das kann nie schaden. 8)