Go Down

Topic: BAscula digital y RS232 (Read 1 time) previous topic - next topic

joseluis jaramillo

Nuevamente solicitando ayuda a alguna alma caritativa referente a la implementacion de una Bascula digital. He podido recibir datos , pero sigo teniendo problemas con la interpretacion de la informacion. Si alguien me quire ayudar hay que tener en cuenta que la bascula envia una cadena continua de 6 caracteres ascii segun el manual,"

The ASCII data format is "=, X1, X2, X3, X4, X5, X6"
<stx> =, X1, X2, X3, X4, X5, X6
X1, X2, X3, X4, X5, X6 are weight data.

pero en realidad recibo 8 asi:

comienza con 0,X1,X,X3,X4,X5,X6,191. Mi problema es como hacer para que la adena me de un dato medible en Kg , Teniendo en cuenta que el formato que envia la bascula por ejemplo paa expresar 10.000 Kg seria X1=1, X2=0, X3=. y asi para sucesibamente, pero en realidad los datos que obtengo son los de la imagen. Bueno en realiad no soy programador y me gustaria que alguein que le entienda a esto me pueda hechar una mano

este es el codigo que tengo hasta ahora:

Code: [Select]
#include "LCD4884.h"   
#include <Wire.h>   
#include <NewSoftSerial.h>


NewSoftSerial mySerial(8, 9);
int led=13;
int incomingByte = 0; // almacenar el dato serie


    void setup()
    {
    pinMode(led, OUTPUT);
    Serial.begin(9600); // usar como debugging
    mySerial.begin(9600);
    Wire.begin();
   
    lcd.LCD_init();
    lcd.LCD_clear();

    }
char cadena[10];
char buf[10];

    void loop() // run over and over again
    {

       
    if (Serial.available() >0) {
    memset(buf, 0, sizeof(buf));
    cadena[incomingByte]= Serial.read();
    delay(100);
    Serial.println(incomingByte);

   
    sprintf(buf, "%d", (byte)incomingByte);
    lcd.LCD_write_string(0, 1, "Rerecibido:   ", MENU_NORMAL);
    lcd.LCD_write_string_big(25, 3, buf, MENU_NORMAL);
    }
   

    }


curro92

Hola,
prueba a completar la cadena de caracteres, y convertirla a float con atof()
Code: [Select]

  char temp[] = "10.000";
   Serial.println(atof(temp));



Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy