Recibir datos de bascula con MAX232

Hola gente, quiero poder recibir los datos de una bascula con ayuda de arduino, compre el MAX232 y utilice el ejemplo de Arduino que se llama SoftwareSerialExample pero no hizo nada, alguien me podría ayudar? gracias de antemano.

Cuidado, los puertos series se conectan entre sí, habitualmente, TX de uno con RX del otro y viceversa (cruzándolos).
NO se conecta TX con TX y RX con RX. No sé si este es tu caso, pero tenlo en cuenta.

Se supone que lo que transmite uno (TX) lo recibe el otro (RX).

ok ok, y el código SoftwareSerialExample me sirve para este propósito?

El código de SoftwareSerialExample te sirve para poder ver en el monitor serie lo que transmite la báscula. Lo que has de configurar la velocidad correcta de ambos puertos series. La velocidad que pongas en Serial.begin(); ha de ser la misma a la que configures el monitor serie y la que pongas en mySerial.begin(); ha de ser la velocidad a la que transmite la báscula. Si no sabes qué velocidad es, puedes ir probando las varias posibles velocidades 1200, 4800, 9600, 19200, 28800, 38400, 56000, 57600 y 115200.

aaaa ya te entendí muchas gracias, lo pruebo y comparto los resultados :slight_smile:

No olvides compartir GND del MAX232 con el dispositivo y con el Arduino.

Espero que sea mas claro con este esquema, busqué entre varios para una mejor comprensión.

ok muchas gracias, tomare fotos de las pruebas y se las muestro muchas gracias por apoyar

Hola gente, buen día a todos, hice pruebas el día de hoy aun sin llegar a lo deseado, tengo la duda si me estoy conectando al puerto correcto ya que la bascula tiene un cable de conexión con su pantalla y a un lado hay otra entrada, agrego imágenes de referencias y gracias a todos por su colaboración.



Me conecte a la otra entrada pero solo me dio unos caracteres extraños, anexo fotos



Y quien envió Goodnight moon?

Lo que debes hacer es, conectas tu PC usando un programa como Termite al dispositivo a ensayar y entonces pruebas los comandos que supongo sabes para ver si hay comunicación.
Si esta mal TX y RX los inviertes pero en algun momento debes poder lograr comunicarte.
La flexibilidad del programa te permite probar muchas cosas rápido, cambiar baudios, cambiar comandos, sin compilar nada que te haya parecido.

Con eso ya sabes como deben ir los cables y luego lo repites con el Arduino.

Se entiende?

Use el codigo de ejemplo de "SoftwareSerialExample" no se si no sea el mas adecuado

#include <SoftwareSerial.h>

SoftwareSerial mySerial(0, 1); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(57600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Yo no hablo de SoftwareSerial. Hablo de tu dispositivo y que no sabes que puerto Serie RS232 usar.

El ejemplo SoftwareSerial es correcto pero sabes si estan bien los cables?

Acá tienes tu respuesta, busqué un poco tu báscula y encontré este Cardinal 180 manual

El que esta junto al cable de alimentación es el que debes usar.

el rx del max232 lo conecto al 1 del arduino y el tx al pin 0, lo conecte directo a la salida que tiene la pantalla de la bascula eso es correcto o lo tengo que conectar al cable que sale de la bascula?

Lee el manual que puse en el post anterior. Ahi esta todo.

Hola gente pues ya me aventé el manual, los pines son los correctos y en la ventana serial del arduino ya me manda "datos" solo que son caracteres raros, pero si los envía cuando presiono la tecla de la bascula para imprimir como dice el manual. Me falta hacer algo? Gracias de antemano.

Cuando enviá caracteres raros, es que esta errado la parida o la longitud de bits, por defecto en el arduino es 8 bits de datos, sin paridad y un bit de stot, deberías entrar en la configuración de la balanza y modificar los datos o modificar la configuración del arduino para que sean iguales.

Saludos

Hola,
Revisa la velocidad de comunicación (baudios).
Página 14 del manual. En tu código 4800 baudios.¿que tiene configurado la báscula?.

En la bascula tuve problemas pues la bascula es de uso continuo y para revisar la configuración tengo que cambiar un jummper, lo que hice fue calarle con las que marca el manual, pero en realidad con ninguna me dio el dato, solo me daba mas o menos caracteres, ahora bien no me quiero encasillar del todo en un solo modelo de bascula, que pasaría si fuese otro, creen que sea una configuración no tan universal?

Hola,
Para la comunicación series es fundamental conocer la configuración, así que si tienes que mover un jumper hazlo.
Tienes que conocer los baudios, si tiene paridad, longitud del dato y si tiene bit de stop. En cuanto uno difiera ya no recibirás los datos correctos. Cada equipo es un mundo hay muchas combinaciones posibles. No hay nada estándar fijado pero lo que mas he visto es 9600 baduios 8 bit de datos, 1 de stop y sin parida. Pero te puedes encontrar cualquier cosa.

ok, pero en el caso de esta bascula en particular viene todo muy detallado, las otras dos que uso no tienen una documentación tan extensa, pero are lo del jummper y ver que pasa.