Autor Tema: convertir String a Flotante o Entero. Arduino bluetooth y App inventro 2  (Leído 5471 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado champilton

  • PIC10
  • *
  • Mensajes: 19
Hola a todos, tengo una duda con respecto a comunicacion bluetooth con android y arduino (incursionando en esta plaquita a ver que tal)
y ya tengo mis primeros problemas... la cosa es que ando haciendo mi aplicacion con el MIT App inventor 2 para la app en android, y todo bien aqui, el problema es el codigo en arduino, cuando llega el dato (enviado como texto desde la app) quiero poder usarla como un numero, y poder compararla con otros numeros y hacerle operaciones.
En concreto lo que hare sera utilizar un Slider desde la app, para usarla como potenciometro y mover un servo con el arduino... utilizare la libreria de servo.h para hacerlo, pero requiero usar un numero y no una cadena al indicar su posicion..... pero el problema es que no paso nisiquiera de la conversion del dato.

este codigo lo estoy usando para poder recibir el dato en forma de texto de la app e imprimirlo en el monitor serial:


Código: [Seleccionar]
String readString;

void setup()
{
  Serial.begin(9600);
  //pinMode(13, OUTPUT);
}

void loop()
{
  while (Serial.available())
  {
    delay(3);
    char c = Serial.read();
    readString += c;
  }
  if(readString.length() >0)
  {
    Serial.println(readString);
    readString="";
  }    
}

el codigo funciona con la appp... pero siendo una cadena, lo que quiero es que en el println coloque un dato numerico, es decir que el texto proveniente de la app se convierta a numero.

coloco tambien la imagen de como esta programada la app en andorid.

En general mi unico problema es que no se si sea conveniente convertir un string a un float, (dado que desde el Slider llegan datos con punto decimal) o como hacerle... puedo mandar texto, pero requiero utilizar datos numericos.

como datos adicionales, si de algo sirven, uso arduino uno R3 y el modulo bluetooth hc-05

Gracias de antemano!!!
« Última modificación: 20 de Octubre de 2014, 03:23:03 por champilton »

Desconectado Ohmmni

  • PIC10
  • *
  • Mensajes: 2
Re: convertir String a Flotante o Entero. Arduino bluetooth y App inventro 2
« Respuesta #1 en: 02 de Junio de 2015, 02:22:55 »
emmm en arduino existe una funcion que convierte de char a int es el "atof"

por ejemplo

si el puerto serial recibe -32.5

y almacenas todo eso en un String

char dato[100]=xxx;

xxx es tu variable recibida por el puerto serial

y tienes un

double valor_int;

la sentencia seria simple

valor_int=atof(dato);

y si lo visualizas en el puerto serial.. se muestra como un -32.5...

yo lo use para modificar un calor.. y sumar ese dato en el puerto serial... quizas te sirva de algo


Desconectado Robocardo

  • PIC10
  • *
  • Mensajes: 45
Re: convertir String a Flotante o Entero. Arduino bluetooth y App inventro 2
« Respuesta #2 en: 25 de Septiembre de 2015, 10:49:52 »
como ya tienes el dato en un String usa el método .tofloat de este modo

Código: [Seleccionar]
Serial.println(readString.toFloat());


 

anything