Pages: 1 [2]   Go Down
Author Topic: modbus RS-232 and arduino  (Read 6451 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/es/Serial/Print
Logged


Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si escribes:
Serial.println("F7 03 00 00 00 16 D0 92");

Estas enviando código ASCII por el puerto y supongo que no es lo que quieres, lo que querrás será mandar el número hexadecimal, por lo que deberás ponerlo así:

Serial.print(0xF7);
Serial.print(0x03);
.
.
.

Y el serial.read no va dentro del println, además deberás comprobar primero que se haya recibido carácteres.

Y por último el sofwareserial lo has inicializado pero no lo estás usando para nada, asi que quita todo lo de softwareserial, te sirve con el que lleva el arduino en hardware

Un saludo
« Last Edit: July 01, 2010, 10:11:11 am by chiva » Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas chivas,

primero gracias de nuevo.

por ejemplo para hacer una prueba, si quiero enviar este código a mi hardward (trabaja en RS 232 como hexadecimal) eso seria correcto?

F7 10 00 13 00 02 04 4C 2C BA 56 8B 3A 07 03 00
 00 00 31 84 78 F7 03 00 00 00 16 D0 92

por hyperterminal enviar:

0xF70x100x000x130x000x020x040x4C0x2C..... todo junto.

he conectado el hardware al ordenador directamente usando el x0n/xoff con hyperterminal y por lo menos el hardware parece estar activo, este sistema es implementable con el arduino. me parece entender que es parecido a un RTS i CTS

saludos
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hyperterminal siempre envía ASCII, por lo que estás enviando en hexadecimal:
0x30 '0'
0x78 'x'
0x46 'F'
0x37 '7'

Para enviar los valores hexadecimales, tienes que enviar el carácter correspondiente a dicho valor y es bastante lío.
Lo más fácil sería enviarlo desde el Arduino como te he dicho, aunque para leer la respuesta tendrías que tener un puerto serie conectado al pc y otro (el software serial) al sensor y lo que te envíe el sensor redireccionarlo al PC para poder verlo sin complicaciones.

xon/xoff es un rts/cts pero por software en vez de hardware, en la wikipedia hay un explicación:
http://en.wikipedia.org/wiki/Software_flow_control

Un saludo
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Xals,

Yo creo que deberias empezar por hacerte ejemplos sencillos de comunicacion entre PC y tu Arduino, y luego ir poco a poco elevando el nivel.
Empezar de cero con el modbus, creo que es demasiado correr.... smiley-wink

Ahora que la web esta traducida al español, puedes ver los ejemplos y ayudas en http://www.arduino.cc/es/ .

Para poder enviar carácteres en hexadecimal, puedes usar Realterm:
http://realterm.sourceforge.net/
Aunque deberías empezar primero por la base e ir poco a poco....


Ánimo!!


 smiley-grin
« Last Edit: July 01, 2010, 03:30:15 pm by igorreal » Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

gracias chicos, seguiré vuestros consejos. Creo que por hoy ya basta, me va estallar la cabeza!!

Os mantendré informados.
Logged

Pages: 1 [2]   Go Up
Jump to: