Pages: [1] 2   Go Down
Author Topic: Read and send HEX sting by serial  (Read 2189 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My dear Friends
I need to read and write a weight from a precision weigher that have a rs232 serial port

The problem is how to receive by Arduino the right weight from the weigher?

If i'll connect the weigher to my pc with serial and send the EXADECIMAL command 01 73 I obtain like response a string with thw weight for example 0023.05g

I buy a RS232 shield with max 3232 I connect to the weigher, but nothing...
Can you help me?
How can I send to my weigher the HEX 01 73 string and listen the reply?
thanks a lot
Fabio
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1010
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tell us how it is connected, and which Arduino you are using.
Also post a link to the shield.

The best way to do this, is to keep the RX and TX for the serial monitor on the PC and to upload the Arduino sketch. Use other pins with SoftwareSerial to control the weighting appartus.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dear Krodal

thanks for your reply.
I use Arduino UNO, comnnected to a RS232 shield
http://dx.com/p/jy-r2t-v1-2-rs232-serial-port-converter-104325
you can see the connection in this photo
http://i49.tinypic.com/3038rqq.jpg

For the rs232 shield i connect the VCC to the +5v of the arduino and the ground to the Arduino Ground
For the trasmission I connect the 7 and 8 pin.

I try all examples found in internet by using serial and serial library, but never.

First question: in the code I need to open one or 2 serial port?
How i can to be sure that I can write and read on the serial?
When I connect the shield to the arduino my pc make a "pling" like i connect a new usb device, is this correct?

thanks for youe support Fabio
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1010
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You use Arduino Uno : good.
The RS232 shield with MAX3232 chip : good.
Wiring : not sure.
Sketch : don't know.

The TX of the shield should probably be connected to the RX of the Arduino.

If a new device is connected to the computer, it makes the "pling" sound. So if you plugin the Arduino with USB connector, the computer noticed that a new device is connected.

Can you connect the serial shield to the computer ? It could be even the same computer. And if you send text over that serial port, you could try to read it with the Arduino.
If that is working, you can try the digital scale.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Can you connect the serial shield to the computer ?

how? by mini usb?
I don't understand how you suggest me
thanks
Fabio
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1010
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You wrote that you can connect a PC with a serial port to the weigher.
You also connect the Arduino with USB to the PC.

So you could connect both the serial port from the PC to the RS232 shield to the Arduino and also connect the USB to the Arduino.
You have to use a second serial monitor program for the serial port.

This way you can test everything without using the weigher.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes! Thanks a lot Krodal
I try to connect my arduino and shield to a serial COM3 and with another serial converter COM4, I monitor the COM4 and I show that the arduino send correctly the string!!!



This code work!

Code:
#include <SoftwareSerial.h>
 
//New serial port for my shield
SoftwareSerial Mx3232Serial =  SoftwareSerial(7, 8);
 
//variabile
//char EchoChar = 'A';
char Str1[ ] = "s";

//String Str1 = " s";
//String Str1 = String(' s',HEX);


String Buffer; unsigned long T;

void setup()  {
//pin7(RX) Input
pinMode(7, INPUT);
//pin8(TX) Output
pinMode(8, OUTPUT);

Mx3232Serial.begin(9600);

Serial.begin(9600);
}
 
void loop() {
//leggo dalla seriale(pin7)
//EchoChar = PortaSeriale.read();
//invio il dato letto
Mx3232Serial.print(Str1);

//Serial.println(Mx3232Serial.read());
 
Buffer = "";
T = millis();

  while (millis() - T < 10)  {         // read all the chars on the serial
    while (Mx3232Serial.available() > 0) {
      Buffer += char(Mx3232Serial.read());
    }
  }
  
  if (Buffer.length() > 0) {           // transmit to Serial Monitor        
    Serial.print(Buffer);
  }

delay(1000);

Serial.print(Str1);

}

Now the problem is, how to send the HEX 01 73 string to my weigher and receive the weight?
If with my serial monitor I send this HEX string it work, with arduino NO!

I try to send this

Code:
Mx3232Serial.write(0x01);
Mx3232Serial.write(0x73);

but dosen't work! Now my question is how to dend in HEX this string?
thanks
Fabio
« Last Edit: January 04, 2013, 12:24:55 pm by rmartin » Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1010
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry that I didn't understand it with the first post.

I think it has to do with the Carriage Return (CR, '\r', 0x0D) and/or Line Feed (LF, '\n', 0x0A).
If you connect the weigher to the PC, you probably send the code with CR and/or LF.
You could read the specification of the weigher, but I would start to send them both.

Code:
Mx3232Serial.write(0x01);
Mx3232Serial.write(0x73);
Mx3232Serial.write("\r\n");

or this

Code:
Mx3232Serial.write(0x01);
Mx3232Serial.write(0x73);
Mx3232Serial.println("");       // send CR LF


or even this

Code:
Mx3232Serial.println("\x01\x73");   // send 0x01, 0x73 with CR LF

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-cry smiley-cry smiley-cry
Oh my good tried more and more time, but never.
I have no reply by the weigher.

what do you think is possible to make for a different carriage return?

Fabio
Logged

0
Offline Offline
God Member
*****
Karma: 39
Posts: 986
Get Bitlash: http://bitlash.net
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If you haven't tried already, consider testing with your TX and RX connections to the scale swapped.  Some devices label them backwards.

Confirm you have a good ground connection to the scale?

-br
Logged

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 551
Posts: 46227
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Some devices label them backwards.
"From a different perspective" is the politically correct way of phrasing that.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The weigher work correctly connected directly to my pc!
The weigher work correctly if I sebd the HEX command by a Port monitor.
And If I try to montor the ARDUINO by the Port monitor software i show the right command, If with my port monitor software I try to send a string my Arduino Monito show this string

I think that my arduino monitor read correclty or not?
thanks
Fabio
Logged

0
Offline Offline
Tesla Member
***
Karma: 118
Posts: 8956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The weigher work correctly connected directly to my pc!

So is your pc serial port TTL or rs232?
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Sr. Member
****
Karma: 9
Posts: 254
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Have you tried connecting your rs232 shield to the rs232 on your PC. Then do a simple sketch to echo your arduino serial connection over rs232 to check that it's connected up properly. This is to make sure its all connected up properly
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The weigher work correctly connected directly to my pc!

So is your pc serial port TTL or rs232?

RS 232, is a standard USB port with a converter USB to RS232

Fabio
Logged

Pages: [1] 2   Go Up
Jump to: