SoftwareSerial Test mit Brücke zwischen TX und RX

Hallo zusammen

Ich stehe wieder einmal auf dem Schlauch.
Ich möchte bei meinem Arduino Mini die SoftwareSerial lib verwenden.
Um das Interface zu testen nehme ich das Standard Example und mache einfach eine Brücke zwischen RX und TX (Pin 2 und 3)
Wieso aber kommt mir auf dem Terminal (am Serial) nichts zurück?

Ich bin der Meinung das ich das so schon einmal getestet habe.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(4800);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Ich habe das bisher noch nicht getestet.

Aber ich befürchte, das wird nicht funktionieren, da der Arduino nicht gleichzeitig über die SoftwareSerial senden und empfangen kann. Der ist halt nicht "Multitasking fähig".

Sollte ich da falsch liegen, bitte ich um Berichtigung. :wink:

Hmm.. Hab ich mir auch schon gedacht.
Aber ich war der Meinung das ich das so schon mal getestet hätte.

Ja dann muss ich wohl meinen Test leicht anpassen.

Danke

hi,

hast Du es damals mit der hardwareserial getestet? da sollte es meinem empfinden nach gehen. die softwareserial hab' ich nie verwendet aber ich könnte mir schon vorstellen, daß sich da das senden und empfangen beißt...

gruß stefan

Hardware serial geht.

Ich kriegs keinen Test über SoftwareSerial zum laufen.

Gruss

Schliess doch mal ein usb-seriell Wandler an die Softserial Pins an, um zu sehen, ob der Fehler schon da liegt.

Versuchs mal mit AltSoftSerial, das kann das.

stofarmi:
Ich stehe wieder einmal auf dem Schlauch.
Ich möchte bei meinem Arduino Mini die SoftwareSerial lib verwenden.
Um das Interface zu testen nehme ich das Standard Example und mache einfach eine Brücke zwischen RX und TX (Pin 2 und 3)
Wieso aber kommt mir auf dem Terminal (am Serial) nichts zurück?

Weil SoftwareSerial die schlechteste Library ist, die mit der Arduino-IDE mitgeliefert wird. Die blockiert beim Senden die Interrupts für lange Zeit, und das führt bei ALLEN Sketchen zu Problemen, die Interrupts verwenden. Zum Beispiel bei Programmen, die Servos mit der Servo-Library ansteuern führt das zu Servo-Ruckeln. Und bei Programmen, die auch mit SoftwareSerial empfangen wollen, führt es dazu, dass Du mit SoftwareSerial gesendetes nicht auch gleichzeitig mit SoftwareSerial empfangen kannst.

Für alles, was anspruchsvoller sein soll, verwendest Du besser eine Drittanbieter-Library wie AltSoftSerial anstelle der hundmiserablen SoftwareSerial Library, die zur IDE mitgeliefert wird.

Jurs hat mal wie immer recht.

Danke Jurs

Ich werde es jetzt mal mit AltSoftSerial versuchen..
Ich gebe bescheid wie es läuft.

armer combie... :cry:

AltSoftSerial funktioniert soweit.

Da habe ich aber das Problem, dass ich nur eine Softserial verwenden kann.
Ich bräuchte aber 2 Softserial plus die Hardware Serial.

Eine Softserial müsste ich dann noch mit 7E1 haben :-[

Jemand ne Idee?

hi,

gibts einen grund für den mini?

ein atmega2560 hat 4 hardware-serial. den gibt's bei platzproblemen auch auf kleinen platinen...

https://www.google.de/search?q=atmega2560+mini+board&client=firefox-a&rls=org.mozilla:en-US:official&channel=nts&biw=980&bih=506&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwjmsuOZi4TLAhWJECwKHfsQASUQsAQIJQ

gruß stefan

Der Grund war die Grösse und der Preis. Je nach dem ob wir mal mehr davon machen wollen.

Am einfachsten wäre es auf den 2560 zu wechseln.
Mal schauen.

Danke

Meine letzten Mega2560 Klone kosteten unter 5€, waren aber 5 Wochen auf der Reise.

stofarmi:
AltSoftSerial funktioniert soweit.

Da habe ich aber das Problem, dass ich nur eine Softserial verwenden kann.
Ich bräuchte aber 2 Softserial plus die Hardware Serial.

Eine Softserial müsste ich dann noch mit 7E1 haben :-[

Wie wäre es denn mit einem Arduino Micro anstelle des Mini? Der Micro hätte zwei Hardwareserial Schnittstellen:

  • "Serial" als "USB-CDC Serial" zum PC
  • "Serial1" an Pin-0 und Pin1
    Und dann könntest Du mit AltSoftSerial noch eine in Software emulierte zusätzliche Serial haben
    Reicht das nicht?

Das könnte reichen.
Ich besorg mir jetzt mal ein Micro und teste dieses.

Danke

Ich habe mir jetzt einen Arduino Micro Pro organisiert. Mein Problem mit der AltSoftSerial: Ich finden den RX pin nicht. Der TX pin scheint die 5 zu sein. Laut Doku soll der RX bin 13 sein. der Arduino Micro Pro hat aber gar keine Pin 13.

Kann jemand helfen?

Laut dem hier unten rechts:

Ich habe den Arduino Micro Pro.

Der sieht so aus: http://www.santy.cz/data/product/100_460.jpg