Hallo zusammen!
Ich nutze gerade einen Mega2560 um eine recht simple Aufgabe zu lösen. So dachte ich.
Ich habe einen GSV2 Kraft-Messverstärker von ME-Messtechnik, welcher über die RS232 kontinuierlich Messwerte als ASCII herausgibt.
Da man an dem MV keine Werte direkt ablesen kann wollte ich diese einfach per Arduino visualisieren (LCD-Display). Ein Display habe ich schon mal genutzt also soweit kein Problem.
Da der Mega 4 serielle Schnittstellen besitzt wollte ich auch gleichzeitig den Input vom GSV2 an den USB weiterleiten, um ggf. später auch noch einen PC als Datenlogger mitlaufen zu lassen.
Soweit so gut.
Ich habe den GSV2 mal an die Serial1 vom Mega2560 gehangen und lese dann wie folgt mit:
void setup() {
// initialize both serial ports:
Serial.begin(9600);
Serial1.begin(9600);
Serial1.setTimeout(100);
}
void loop()
{
String inStr;
// read from port 1, send to port 0:
if (Serial1.available() >0 )
{
inStr = Serial1.readString();
Serial.println("String: "+ inStr);
Serial1.flush();
}
}
Was dabei herauskommt ist aber leider nicht lesbar:
String: i⸮⸮⸮6⸮⸮⸮c⸮⸮
String: i⸮⸮⸮6⸮⸮⸮c⸮⸮
String: i⸮⸮⸮6⸮⸮⸮c⸮⸮
String: i⸮⸮⸮6⸮⸮⸮c⸮⸮
String: i⸮⸮⸮6⸮⸮⸮c⸮⸮
Wenn ich z.B. mal mit Putty auf dem Port mithöre sehe ich als Ergebnis :
-0000.63 N
-0000.63 N
-0000.63 N
-0000.62 N
-0000.63 N
Wenn dein GSV2 Kraft-Messverstärker eine echte RS232-Schnittstelle besitzt, darfst du diese nicht direkt an den Arduino anschließen. Die RS232 arbeitet mit +- größer 5 Volt und würde deine serielle Schnittstelle killen.
Du brauchst einen RS232-TTL-Wandler dazwischen.
Daher kommen vermutlich auch die falschen Daten.
Hast du denn auch die Baudrate richtig eingestellt ?
Aber zu klären ist ob es RS232 ist oder UART TTL.
RS232 verwendet - wie bereits erwähnt wurde - andere Spannungspegel und ist im Vergleich zu UART/TTL invertiert.
Edit:
Es scheint sich wohl um eine "echte" RS232 Schnittstelle zu handeln.
Zitat von der Website:
Digital-Messverstärker GSV-2
Die Geräte GSV-2 sind in Ausführungen mit- und ohne Display, mit RS232, mit CANBus (CANopen Protokoll), mit USB, mit Ethernet oder mit SD-Karte als Datenlogger verfügbar.
In diesem Fall ist wohl eine RS232 zu UART TTL Schaltung nötig. Gibt es schon fertig (Beispiel 1, Beispiel 2, Beispiel 3), oder selbst bauen z.B. mit MAX232.