SoftwareSerial vs. HardwareSerial

Hallo,

ich gedenke, eine GPS-Maus und ein GSM-Modul, sowie ein SD-Kartenmodul an einem Arduino
zu betreiben.
Da GPS und GSM via UART kommunizieren, würde sich ein Mega anbieten, funktionierte auch super.
Angesteuert über die HW-UARTs des Mega.

Nun möchte ich auf einen Nano oder Uno "verkleinern".

Hab in der Library der SoftwareSerial ein Beispiel "TwoPortReceive" gefunden, im Gegensatz zu HW
kann wohl bei SW nur jeweils ein Serial empfangen/senden.

Dort im Beispielcode ist die Rede davon, dass er auf einem Mega laufen kann.

Aber der hat doch ohnehin 3 HW-Serials... wozu dann SW-Serial? Mehr Ports?
Würde doch bei einem Vorhaben, das auf nem Uno oder Nano laufen zu lassen, mehr Sinn machen...

Ich hab jetzt noch nichts probiert, mich würde mal interessieren, wo dann die Unterschiede und
Vor- und Nachteile der HW und SW Serials in Bezug auf Arduino sind...

Danke & Grüße,

ich kenne keine Vorteile von Softserial gegenüber HW-Serial, also würde ich HW Lösungen immer vorziehen.

Wenn es dir beim Verkleinern nur um den "Platzbedarf" geht, suche mal nach Mega 2560 Pro Mini, gibt es in verschiedenen Versionen, ... 5V, 3.3V, größer und kleiner.

benzner1968:
Hab in der Library der SoftwareSerial ein Beispiel "TwoPortReceive" gefunden, im Gegensatz zu HW
kann wohl bei SW nur jeweils ein Serial empfangen/senden.

Das ist tatsächlich das größte Problem der Software Serials. Wenn immer nur 1 Gerät senden darf, dann kann man ja einen Multiplexer nehmen (hier z.B. RS-485) und genau dieses Gerät an ein Hardware-Serial senden lassen. Wenn mehrere Geräte gleichzeitig senden dürfen, führt das ziemlich sicher zu Datenverlust.

Hallo,

man könnte vielleicht zwei Software Serielle anlegen, eine empfängt, die andere sendet. Mein größte Sorge wäre allerdings der RAM Bedarf für alles. Ansonsten wie empfohlen einen "geschrumpften" Mega nehmen, was vielleicht die beste Wahl von allen Möglichkeiten wäre. Vorteil ist, du kannst dein Programm mit bisherigen Mega zu Ende bringen und dann auf den anderen Mega ohne weiteres übertragen. Ohne jede Änderung.