Enviar datos a Arduino desde monitor serial

#21
Como se ha comentado antes, la transmisión de información debe seguir un protocolo.

En el ejemplo propuesto, estamos hablando de leer dos valores en punto flotante, que se envían a través de nuestro teclado. El ordenador sabe que tiene que comenzar el envío del número en punto flotante cuando pulsamos la tecla Entrar. Y lo envía todo, incluido el o los caracteres que representan el final de línea (si es uno o dos depende del sistema operativo en que estés). Bueno, pues son justo esos caracteres los que estamos descartando al vaciar el búfer.

Si los datos los enviamos de otra forma, pues habrá que leerlos de acuerdo a esa nueva forma.
 
Última edición:
#22
Ah vale. Como bien dice en la documentación de parseFloat, esta función lee hasta que encuentra un valor extraño (que en este caso sería el salto de línea) y ese salto no lo saca del buffer y por eso hay que vaciarlo. Es eso, ¿no?

Creo que por fin lo tengo claro al 100% jajaja
Muchas gracias!
:)
 
#23
Buenas, estaba haciendo un código para un proyecto y necesitaba enviar un dato por el monitor serial del ide de Arduino y quería que luego el Arduino envié lo mismo que había recibido, solo para verificar que era lo ultimo que se le había enviado, pero lo que respondía el arduino no era ni parecido a lo que yo enviaba, entonces busque un ejemplo en internet y era mas o menos lo mismo, lo copio y tampoco funciona. Por ejemplo, al enviarle un 1 me devuelve un 49, no se si estoy haciendo algo mal o es mi arduino que tiene algún problema.

El código de ejemplo es este:

Código:
int incomingByte = 0; // almacena el dato serie
void setup() {
Serial.begin(9600); // abre el puerto serie, y le asigna la velocidad de 9600 bps
}
void loop() {
// envía datos sólo si los recibe:
if (Serial.available() > 0) {
// lee el byte de entrada:
incomingByte = Serial.read();
//lo vuelca a pantalla
Serial.print("He recibido: "); Serial.println(incomingByte);
}
}
...
 

Dr. Zoidberg

Well-known-Papá Pitufo
#24
AgusNob dijo:
Buenas, estaba haciendo un código para un proyecto y necesitaba enviar un dato por el monitor serial del ide de Arduino y quería que luego el Arduino envié lo mismo que había recibido, solo para verificar que era lo ultimo que se le había enviado, pero lo que respondía el arduino no era ni parecido a lo que yo enviaba, entonces busque un ejemplo en internet y era mas o menos lo mismo, lo copio y tampoco funciona. Por ejemplo, al enviarle un 1 me devuelve un 49, no se si estoy haciendo algo mal o es mi arduino que tiene algún problema.
El que tiene el problema sos vos!!!
Le estás mandado un '1' como caracter (estas enviando el código ASCII del 1 :() y el Arduino te devuelve el 49 que, precisamente, es el ASCII del '1'.

Programar no solo es escribir código al boleo adivinando lo que sucede...
 
Arriba