ich habe folgendes Problem. Ich möchte Daten aus einem Messgerät auslesen und an den PC weitergeben. Die Datenausgabe funktioniert generell wunderbar.
Allerdings müsste ich beim Einlesen der Daten die config von "mySerial.begin" (#include <SoftwareSerial.h>, Pin o und 1) zu SERIAL_7N2 ändern. Leider scheint dies nicht zu funktionieren. Ich benutze gerade eine Arduino Nano. Mache ich etwas grundlegendes Falsch oder würde diese Funktion mit einem anderen Board funktionieren?
Mit dem kannst du dann über Software Emulation eine Verbindung zum PC machen. Verwende aber statt SoftwareSerial AltSoftSerial: https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
Damit sind höhere Baudraten möglich
Das Problem ist hier glaube ich, dass er sich nicht bewusst ist, dass die USB Buchse auch an der seriellen Schnittstelle hängt. Er braucht aber 2 Schnittstellen.
Hallo zusammen,
danke für die Antworten. Ich wusste in der Tat nicht, dass die USB Buchse auch an Pin0 und 1 hängt. Nun funktioniert das Einlesen.
Mit der de Einstellung kann ich das Ergebnis jedoch nicht auf dem Serial Monitor zur Kontrolle anzeigen lassen (es kommt später auch noch ein weiteres Messgerät hinzu). Daher die Überlegung, ob es ein Board gibt, mit dem das geht. Kann man mit dem Mega und den Serial1 - Serial3 verschiedene configs einstellen?
Am Nano Tx (Pin 8) und Rx (Pin 9) die Datenleitung des Messgerätes.
Die Hardware UART Schnittstelle bleibt nur für den PC.
Eine dritte Serielle Schnittstelle ist mit der AltSoft dann aber nicht mehr möglich. Die SoftwareSerial/NewSoftSerial könnte evtl. eine 3 Schnittstelle bereitstellen (je nachdem ob der Timer frei ist).
Das Problem ist dann folgendes. Er braucht für das Messgerät 7N2. Das geht mit AltSoftSerial nicht, sondern nur mit der Hardware Schnittstelle. Deshalb der Vorschlag mit dem externen USB/TTL Wandler. Damit ginge dann eine Verbindung zum PC per Software Schnittstelle.
Aber wenn dann noch ein weiteres Gerät hinzukommt das nicht mit 8N1 läuft bleibt nur ein Prozessor mit mehr UARTs.
Er braucht für das Messgerät 7N2. Das geht mit AltSoftSerial nicht
Ein Notbehelf-Trick wäre, beim Senden alle Zeichen mit 0x80 zu odern und beim Lesen zu auszublenden. Das simuliert ein zweites Stopbit. und 7 Datenbits.
Ausgaben gehen dann nur mit write(char) oder write(byte),
print und write(char*) muss man sich selbst bauen, oder die Ausgabetexte vorbehandeln. ( Notbehelf eben )