Pages: [1]   Go Down
Author Topic: BAscula digital y RS232  (Read 1118 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 13
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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);
    }
   

    }
Logged

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 711
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
prueba a completar la cadena de caracteres, y convertirla a float con atof()
Code:
  char temp[] = "10.000";
   Serial.println(atof(temp));

Logged

Pages: [1]   Go Up
Jump to: