Hola a todos. Siguiendo con mi aprendizaje en la plataforma decidí hacer un pequeño ejercicio de practica para ver el uso de funciones con Arduino. Por esta parte bien, sin embargo me he encontrado con la cuestión de que no consigo leer valores paso por paso a traves del monitor de serie del IDE de Arduino. Me explico:
Estando acostumbrado a Java, esperaba que con este codigo que os muestro a continuación me imprimiera por pantalla "Inserte frase n1: ", esperara a que le enviara un dato, continuara imprimiendo "Inserte frase n2: " y volviera a esperar a que le enviara un dato.
void setup(){
Serial.begin(9600); // Abre la conexión con el puerto de serie
Serial.println("Presione \"l\" para unir frases...");
}
void loop() {
if (Serial.available() > 0) {
String opt = Serial.read();
if (opt == 108) { // Entra si presionamos l, "108" en ASCII.
Serial.println("Inserte frase n1: ");
String frase0 = Serial.read();
Serial.println("Inserte frase n2: ");
String frase1 = Serial.read();
Serial.println(uneFrase(frase0,frase1)); // imprime el resultado de la llamda a la funcion "uneFrase"
}
}
}
String uneFrase(String x, String y){
String frase3 = x + y;
return frase3;
}
Sin embargo para mi decepción, al pulsar "ele" el programa imprime tanto "Inserte frase n1: " como "Inserte frase n2: " sin esperar a que le envie los datos.
Mi pregunta es clara, ¿Cómo puedo hacer para que espere a que le mande los datos?, ¿Estoy enfocando el problema mal?
Muchas gracias a todos, salu2¡
P.S.: no he comentado todo el código pero no creo que sea necesario.