Problemas con Serial.read()

Hola ¿que tal?

Como habreis podido deducir por la pregunta, soy novato en esto y quiero mandar una frase por el monitor serie, que arduino la lea y lo escriba en el mismo monitor. Lo unico que consigo es, si le pongo por ejemplo "Esto es una frase" que escriba en el monitor serie "EE". ¿Alguien podria explicarme como hacer para enviar y recibir por puerto serie frases completas. He buscado por google pero no consigo entender.

Os pongo uno de los codigos que he hecho despues de muchas pruebas. Perdonad el goto, es solo una prueba. De cualquier forma, gracias anticipadas.

//intento enviar una frase completa por puerto serie hacia el arduino.

String cadena1;
String cadena2;
char solo;
int bandera;

void setup() {
Serial.begin(9600);
aqui:
if(Serial.available()==0){
goto aqui;
}
while(Serial.available()){
solo=Serial.read();
cadena1.concat(String(solo));
Serial.print(cadena1);
bandera=1;
}
Serial.println(cadena1);
cadena1="";
bandera=0;
}

void loop() {

// statement
}

String readString;

void setup() {
Serial.begin(9600);
}

void loop() {
while (Serial.available()) {
delay(3);
char c = Serial.read();
readString += c;
}

if (readString.length() >0) {
Serial.println(readString);
readString="";
}
}

Jopapa
www.jopapa.me

Muchísimas gracias, jopapa, por la respuesta. Abusando un poco mas de ti, ¿podrías comentarme por que no funciona la linea cadena1.concat(String(solo)); y mas concretamente el .concat(). ?

De todas maneras, gracias.