Otra forma de hacer el Serial.print()

BUenas,
alguien sabe alguna forma de que usando un ultrasonidos la distancia que se muestra por pantalla vaya guardandose en la misma posicion en vez de sacar todas las posiciones por pantalla?

ejemplo:
Distancia: 297cm //esta es la que ira cambiando conforme cambie la distancia del ultrasonidos
en vez de : Distancia: 297cm 284cm 299cm ...

Hola,

Si quieres que salgan en distintas lineas puedes usar Serial.println(); cuando escribes "cm" para que de esa manera el próximo valor aparezca en la línea siguiente, algo así:

void setup()
{
    //tu codigo ...
}

void loop()
{
    //tu codigo ... 
    enviarDistancia(distancia);
}

void enviarDistancia(byte d)
{
    Serial.print("Distancia: ");
    Serial.print(d);
    Serial.println(cm); //Esto añade un retorno de carro y salto de linea (\r\n) al final
}

Ahora si lo que quieres es siempre sobre escribir el valor en la misma línea puedes intentar enviar un return sin el salto de linea.

void setup()
{
    //tu codigo ...
}

void loop()
{
    //tu codigo ... 
    enviarDistancia(distancia);
}

void enviarDistancia(byte d)
{
    Serial.print("Distancia: ");
    Serial.print(d);
    Serial.print(cm);
    Serial.print("  ");//Agrego dos espacios en blanco para borrar en caso de que antes era 3 digitos y ahora 1 solo
    Serial.print('\r'); //Esto añade un retorno de carro para volver al inicio de la misma linea
}

Pruebalo, y avisa si te funciona como quieres o tienes algun problema.

Saludos.

El problema es que así no se sobreescribe el valor de la distancia sino que va saliendo en la misma linea todo el rato "Distancia: xcm"

No lo he hecho nunca pero si usas serial.write y mandas el numero que corresponde a esos comandos de la tabla ascii deberia de ir. Tendras que hacer pruebas porque algunos comandos de la tabla ascii no son facil de interpretar. Salu2

Hola,

El problema es que así no se sobreescribe el valor de la distancia sino que va saliendo en la misma linea todo el rato "Distancia: xcm"

Yo te deje dos codigos, ¿probaste el segundo? (el primero escribe lineas nuevas, el segundo escribe en una sola linea), si puedes sube una imagen de lo que obtienes y otra de lo que quieres para entenderte mejor.

Saludos.

de echo el que prové fue el segundo:

Hola,

Estuve investigando y el Monitor Serial de Arduino no muestra correctamente el Retorno de Carro \r, si haces la visualización de ese mismo código con otro visualizador serial como Putty http://www.putty.org/ o hasta el mismo HyperTerminal si lo veras de la manera deseada.

Saludos.

bueno da igual, en realidad mi objetivo es hacer el print sobre el lcd nokia 5110, asi que eso no sera más que cada vez situar el cursor en el mismo sitio y ya

Hola,

Bueno Serial es una cosa y LCD es otra.

Dejo este enlace aquí que me parecio interesante por si alguien llega a este post buscando información útil Formateando la salida en Serial para Arduino [1ª parte] ( y no sólo para Arduino ) - Poesía Binaria

Saludos.