En esta ocasión enviaremos un dato tipo float ingresado por el Monitor Serial de Arduino a la plataforma, para que esta nos reenvíe el dato con punto decimal sin pérdida de datos con un porte máximo de 20 caracteres.
El programa usado es el siguiente:
/* PROGRAMA DE PRUEBA DE COMUNICACION SERIAL El siguiente programa nos ayuda a enviar datos del tipo flotante a un Arduino y que se retorne el mismo dato enviado con un porte de hasta 20 caracteres Formato del dato: xxx.xxx Autor: Carolina G. http://beetlecraft.blogspot.pe/ El siguiente programa es de uso publico, cualquier modificacion o mal uso del mismo que pudiera ocasionar el mal funcionamiento de la plataforma de uso de la misma no es responsabilidad del autor */ void setup(){ Serial.begin(9600); } void loop(){ float dato; // Variable de almacenamiento de dato transformado // Mensaje en puerto serial Serial.print("Dato: "); dato = dato_salida(); // Lectura del dato arreglado Serial.println(dato); } float dato_salida(){ // Dato de salida float dato_flotante = 0; // Constructor de dato enviado char vector[20]; // Variable de almacenamiento de dato leido por serial int flag = 0; // Flag de entrada de bucle while while (flag == 0){ // Bucle mientras el flag sea menor que 1 if (Serial.available()) { // Lectura del puerto serial abierto delay(100); int i = 0; // Variable auxiliar de construccion de vector while (Serial.available() > 0){ // Lectura mientras tenga valores el buffer char inByte = Serial.read(); // Variable de almacenamiento de entrada de datos vector[i] = inByte; // Vector de almacenamiento para construccion de dato i += 1; // i = i + 1 flag = 1; } dato_flotante = atof(vector); // Conversion del vector de char a float memset(vector, 0, sizeof(vector)); // Limpia los datos ingresados al vector } } return dato_flotante; // Retorna el valor arreglado }El resultado es el siguiente:
Autor:
No hay comentarios:
Publicar un comentario