timtailors:
Hallo,
ich habe schon etliche Beispiele für das serielle Einlesen gefunden, aber das funktioniert bei mit nicht.
Ich habe ein String, der so aussieht: "13.54,0.27,1023,255,1,13:01:12"
Diesen möchte ich nun in einzelne Variablen teilen nur wie geht das??
Ich habe Dir mal ein Beispielprogramm gemacht, das die 10 integer-Werte aus Deinem "String" in ein Array einliest und auf Serial ausgibt. Die dafür von mir verwendete sscanf() Funktion ist zwar eigentlich nur für nullterminierte C-Strings (char-arrays) vorgesehen, aber für "String" gibt es ja seit einer Weile .c_str(), denn intern können offenbar nicht mal die Erfinder von "String" auf den Umgang mit nullterminierten C-Strings verzichten, sie verstecken das nur ganz gut, so dass man nur über den Umweg .c_str() an das eigentliche nullterminierte char-array herankommt, das der "String" intern verwaltet.
Beispielprogramm:
void setup() {
Serial.begin(9600);
String der_so_aussieht= "13.54,0.27,1023,255,1,13:01:12";
// Diesen möchte ich nun in einzelne Variablen teilen nur wie geht das??
int einzelneVariablen[10];
sscanf(der_so_aussieht.c_str(), "%d.%d,%d.%d,%d,%d,%d,%02d:%02d:%02d", &einzelneVariablen[0],&einzelneVariablen[1],&einzelneVariablen[2],&einzelneVariablen[3],&einzelneVariablen[4],&einzelneVariablen[5],&einzelneVariablen[6],&einzelneVariablen[7],&einzelneVariablen[8],&einzelneVariablen[9]);
Serial.println("Einzelne Variablen");
for (int i=0;i<10;i++)
Serial.println(einzelneVariablen[i]);
}
void loop() {
// put your main code here, to run repeatedly:
}