SoftwareSerial Arduino Nano

Hallo zusammen, ich versuche mit einem Arduino Nano einen Messschieber von Helios Preisser auszulesen.
Ein Programm hab ich welches von Pin 9 liest und die werte sollen per seriellen Monitor auf dem PC angezeigt werden. Nach dem Anschluss und aufspielen des Programms sendet der Arduino Nano aber nur kryptische zeichen. Ich denke das es von den falschen Einstellungen des Seriellen Anschlusses liegt.
Standart Einstellung ist wohl 8N1 laut Serial.begin() - Arduino Reference
Ich benötige aber als Übertragungsparameter 1 Startbit, 7Bit Wortbreite; gerade Parität 2 Stoppbits und 4800 Baud.

Zur Frage: Ist es generell möglich die Daten mit den anderen Übertragungsparametern mit dem Arduino Nano auszulesen oder muss ich wie auf Serial.begin() - Arduino Reference angegeben auf den Arduino Mega umsteigen ?

Datenblatt des Messschiebers:
http://www.produktinfo.conrad.com/datenblaetter/800000-824999/821498-an-01-ml-DIGI__TASCHENMESSSCHIEBER_15_de_en_fr_it.pdf

Test_RX_TX_1.ino (359 Bytes)

Mit einem TTL/USB Konverter kannst du die Hardware Schnittstelle für die Kommunikation mit dem Gerät verwenden und SoftwareSerial für die Kommunikation mit dem PC

Ich benötige aber als Übertragungsparameter 1 Startbit, 7Bit Wortbreite; gerade Parität 2 Stoppbits und 4800 Baud

.
Du hast also das originale Datenkabel?

Dann hast du hoffentlich auch einen max3232 oder max232 an deinen Nano gebaut.

Nein ich habe an dem orginalen Kabel des Messschiebers den 9poligen Sub D Stecker abschnitten und RX und TX direkt an Pin 9 und 10 angeschlossen und +Vdd auf 5V und das 4. auf Masse
Die LED an dem Optischen Übertrager am Ende des Kabel leuchtet.
Beim Verbinden von 5V auf Pin 9 vom Bord wird die Anfrage gestartet, aber es kommen wie gesagt nur kryptische Zeichen an.

Was macht der TTL/USB Konverter ?

Martin1977:
Nein ich habe an dem orginalen Kabel des Messschiebers den 9poligen Sub D Stecker abschnitten und RX und TX direkt an Pin 9 und 10 angeschlossen und +Vdd auf 5V und das 4. auf Masse

Dann kommt das Signal invertiert bei deinem Nano an.

Übrigens RS232 verwendet Pegel, jenseits von +5V und GND

PS:
Ich weiß nicht was alles in dem abgeschnittenem Stecker steckt.
Also ohne Gewähr.

SoftwareSerial kann selber keine Parität, glaube ich...

Aber zum testen kann man das dem Terminal überlassen.

Also ein Terminal verwenden, welches " 1 Startbit, 7Bit Wortbreite; gerade Parität" kann.
Das folgende Programm leitet das transparent weiter.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);

void setup() 
{
  mySerial.begin(4800);
  Serial.begin(4800);
}

void loop() 
{
  if(mySerial.available()) 
  {
    byte a = mySerial.read();
    Serial.write(a);
  }
  
  if(Serial.available()) 
  {
    byte a = Serial.read();
    mySerial.print(a);
  }
}

Ich steh gerade auf dem Schlauch.
Den Code hab ich gerade probiert, es kommen die selben Zeichen an. (im seriellen Monitor der Arduino Software)
Oder muss ich die Empfangseinstellungen am PC ändern ?

Oder muss ich die Empfangseinstellungen am PC ändern ?

Habe ich doch gesagt!

Siehe:

Also ein Terminal verwenden, welches " 1 Startbit, 7Bit Wortbreite; gerade Parität" kann.

Und damit ist der Ardiono Serial Monitor aus dem Rennen!

Alternativ könntest du die Paritätsberechnung/Auswertung auch auf dem Arduino händisch machen.

Und was ist mit diesem Problem:

Dann kommt das Signal invertiert bei deinem Nano an.

??

Besser wäre es wenn der Arduino das selbst so "berechnet" und somit der Wert evtl auch weiterverwendbar wäre z.B.zu einer Berechnung.

Mit dem invertierten Signal muss ich leider auch die Segel streichen, dafür sind meine Programmierkenntnisse zu gering.
Ich will mal nach einem Beispiel suchen, evtl. komm ich ja dann durch.

Also ich würde mir das vorher mal mit dem Oszi anschauen. Weil da sind doch recht viele Unbekannte drin.

Könnte es auch mit einem RS232 zu TTL Converter funktionieren?

https://www.ebay.com/itm/RS232-To-TTL-Converter-Module-Serial-Module-DB9-Connector-3-3V-5-5V-Arduino-YC-/263357883329

kann man hier eventuell die Übertragungsart vorgeben?

Das wäre höchstwahrscheinlich hardwaremässig das richtige gewesen, wenn du den dsub9 nicht abgeschnitten hättest.
Aber das hätte das Problem mit dem Protokoll auch nicht gelöst

Zur Not wird es wieder angelötet... Kann man bei einem Hardware wie diesem die Übertragungsart einstellen ?

Laut dem von dir verlinkten Dokument macht und erwartet es: "1 Startbit, 7Bit Wortbreite; gerade Parität 2 Stoppbits und 4800 Baud"
Von irgendwelchen Alternativen ist da weit und breit nichts zu sehen.

Wozu auch?
Die Paritätsgeschichte, kannst du auf dem Arduino zu Fuß durchführen.
Und 4800 Baud ist total klasse für Softwareserial.

Beachte aber auch, dass die Schieblehre über RTS mit Energie versorgt werden möchte und auf DTR (oder Knopfdruck) mit senden reagiert.