Es gibt für Dein Problem sicher verschiedene Lösungen.
Falls Du den ankommenden String zeichenweise einliest, kannst Du den ja schon beim Lesen zerlegen.
unsigned long data;
char buffer[40];
int index = 0;
int counter = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
//wenn serielle Daten vorhanden, dann einlesen
if(Serial.available()) {
//einzelnes Zeichen lesen
char c = Serial.read();
//wenn Trennzeichen, dann vorherige Daten verarbeiten
if(c==',' ) {
//bisher gelesenen String terminieren (letzte Byte = \0)
buffer[index] = 0;
//Zähler für die Anzahl der gelesenen Werte erhöhen
counter++;
//Puffer-Index wieder auf 0 setzen
index=0;
//String in Zahl umwandeln
data = atol(buffer);
//Ausgabe
Serial.print("Zahl ");
Serial.print(counter);
Serial.print(" = ");
Serial.println(data);
} else {
//kein Trennzeichen, dann Ziffer in den Puffer schreiben und Index erhöhen
buffer[index++] = c;
}
}
}
Das ist nur ein Beispiel und krankt auch an der Umwandlung der großen Zahl, die leider nicht in ein unsigned long passt. Aber das Prinzip wird denke ich klar.