Prueba esto y me dices que tal lo hace
char cadena[30]; //Creamos un array que almacenará los caracteres que escribiremos en la consola del PC. Le asignamos un tope de caracteres, en este caso 30
byte posicion=0; //Variable para cambiar la posición de los caracteres del array
int valor; //Variable del valor entero
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
memset(cadena, 0,sizeof(cadena)); // memset borra el contenido del array "cadena" desde la posición 0 hasta el final sizeof
while(Serial.available()>0) { // Mientras haya datos en el buffer ejecuta la función
delay(5); // Pone un pequeño delay para mejorar la recepción de datos
cadena[posicion] = Serial.read(); // Lee un carácter del string "cadena" de la "posicion", luego lee el siguiente carácter con "posicion++"
if (cadena[posicion] = '\r') { // terminamos de
cadena[posicion] = 0; // borro ese caracter \r y termino la cadena
break;
}
posicion++;
}
Serial.print("este es = ");
Serial.println(cadena);
}
}