como validar datos recibidos por serial??

Hola necesito ayuda para entender donde es que se almacenan los datos en este ejemplo. yo mando por serial A12 y en el monitor de serial me aparece:

A 1 2

que es lo que necesito porque la idea es poner un if para que dependiendo que números sean lo que reciba actue de una u otra forma por ejemplo si yo mando A12 quiero que compare si empieza con A y que prenda el relay 1 por 2 segundos. Lo que no entiendo es todo,(jaja) pero no se donde "thisChar" esta guardando cada numero como para intentar ponerlo en una variable??

void setup() {
  
  Serial.begin(9600);
  while (!Serial) {
    ;
   }
  Serial.println("escribir");
  Serial.println();
}

void loop() {
   if (Serial.available() > 0) {
    int thisChar = Serial.read();

    Serial.print("\n");
    Serial.write(thisChar);
   
  }
}

thisChar ES la variable, y ahi se estan almacenando los caracteres uno a uno mientras los lees y los procesas. Lo que ocurre con ese código es que una vez que evaluas/procesas un caracter leido, leer el siguiente elimina el anterior, lo que es posible que esté bien, o a lo mejor necesitas guardar los caracteres.

Si necesitas una referencia futura a los caracteres, una opción es ir guardándolos en un array, uno a uno, y asi luego podes referenciarlos. La otra opción es leer un String completo, que es lo que a veces hago yo, mediante la función Serial.readString() o similar, la cual la almaceno en mi caso en una variable del tipo String que es un objeto muy práctico y flexible.

Espero que mis aclaraciones te ayuden. Suerte!

Hola:

Quizás este tutorial te de ideas.

[TUTORIAL] Lecturas de entradas digitales con Arduino y Visual Studio .net

Saludos.

Bueno Grasias por la no ayuda JAJAJAAJA (es un chiste por favor que no se ofenda nadie)
Bueno por lo que estuve viendo un String se puede dividir, osea puedo crear un:

String datosrecibidos = Serial.readString

cosa que todo lo que pase por el serial este hay y despues
dividirlo asi
String elemento1 = datosrecibidos [0]
y asi con todos los datos que envie ya me quedan en “datosrecibidos ” listos para un if.

//datosrecibidos es:55

if(datosrecibidos[0]<="5");// aca si toma el 5

{

Serial.println(datosrecibidos[0]);// aca imprime en el monitor el 5

digitalWrite(pinRed, HIGH);

delay(datosrecibidos[1]*1000);// acá envés de tomar el 5 y multlipicarlo por 1000 toma el ascii

digitalWrite(pinRed, LOW);

}
else{

digitalWrite(pingreen, HIGH);

delay(datosrecibidos[1]*1000);

digitalWrite(pingreen, LOW);

}

Ahora yo quiero usar el delay asi y no me toma el 5 me toma 53 por lo que enves de tener
5 segundos de espera tengo 53 alguien me explica por que ??