Hallo,
aktuell benötige ich für ein Projekt eine RS232-Verbindung. Deshalb habe ich mir eine kleine Schaltung mit einem MAX232 aufgebaut, damit ich am Arduino eine RS232-Verbindung habe. Die RS232 benötige ich, damit ich Messwerte von einer Wetterstation abholen kann. (Die Uhr am Arduino soll darüber auch nachgestellt werden.)
Das Senden von Befehlen über die RS232-Schnittstelle funktioniert schon mal problemlos.
Leider hab' ich Probleme mit dem Empfangen von Daten.
Da ich in Sachen RS232-Kommunikation mit dem Arduino so gut wie keine Ahnung habe, brauche ich eure Hilfe, da ich unteranderem ein Verständnisproblem damit habe.
Ich habe folgenden Code aus dem Internet (ein bisschen angepasst habe ich ihn):
#define STRLEN 16
char buffer[STRLEN];
int bufferIndex = 0;
void setup() {
Serial.begin(9600);
}
void loop(){
if (Serial.available()){
char retTime = Serial.read();
if (retTime == '\n' || retTime == ':' || retTime == '\r'){
buffer[ bufferIndex ] = 0;
} else {
buffer[ bufferIndex++ ] = retTime;
Serial.print(retTime);
}
}
}
Dieses Codestückchen soll die Uhrzeit über die RS232 abholen. Funktioniert eigentlich auch ganz gut: Gebe ich z.B. 14:20:55 wird mir 142055 zurückgegeben. Diese 6-stellige Zahl kann ich dann einfach zerlegen.
Da das Gerät an der RS232 aber nicht nur rein die Uhrzeit, sondern "Uhrzeit: 14:20:55\n\r" zurückgibt, muss ich mit einem substring arbeiten. Da geht das Problem aber schon los, wie bekomme ich ein char in einen String?
Dasselbe Problem habe ich auch bei den Wetterdaten. Die Daten werden von der Wetterstation als ACII-Klartext übertragen. Die Daten habe ich dann auch wieder in einem char, welches aber zu einem String verwandelt werden muss, damit ich die Daten weiterverarbeiten kann.
Das Umwandeln von String zu Int/ Long ist dann wieder einfach:
long time = DerSring.substring(6,11).toInt();
Ein Verständisproblem habe ich aber dennoch:
Was ist denn das?/ der? char retTime? Das ist doch einfach ein großes Array, indem jedes Zeichen drin ist,
mit einem eigenen Index?
Ich hoffe mal, dass mein Ansatz mit substrings zu arbeiten schonmal richtig ist....
Viele Grüße
webworker