Man kann sich das Vergleichen komplett sparen wenn man es gleich vernünftiger abspeichert (sowohl auf der SD Karte als auch im RAM):
void setup ()
{
Serial.begin(115200);
char str1[] = "12,0";
char str2[] = "5,1";
parseString(str1);
parseString(str2);
}
void loop ()
{
}
void parseString(char* str)
{
byte pin = atoi(strtok(str, ","));
byte state = atoi(strtok(NULL, ","));
Serial.print(pin);
Serial.print(" - ");
Serial.println(state);
}
Pin-Nummer nur mit Ziffern (also kein D1, A1, etc.) und den Status als 0 oder 1. pin und state kann man auch direkt in digitalWrite() einsetzen
Klar man das auch als Wörter speichern und dann mit Vergleichen umsetzen. Aber wozu den Aufwand betreiben?
Ähnlich ist es z.B. bei Kommandos. Statt "Temperatur:20" kann man "T20" oder "T:20" machen. Dann kann man auf das 'T' mit switch/case abfragen statt mit strcmp() ein ganzes Wort zu vergleichen.