Arduino Forum

International => Español => Hardware => Topic started by: anggar on May 11, 2012, 12:40 pm

Title: Arduino como puente RS-232
Post by: anggar on May 11, 2012, 12:40 pm
Hola a todos.
Soy anggar nuevo usuario del foro y principiante en esto de Arduino.
De momento estoy con los ejemplos basicos y probando sensores.

Queria hacer esto que os cuento aunque no se si es posible.

Tengo un cacharro que se comunica con el PC a traves del Puerto Serie. le envia datos.
Lo que quiero es (y pretendo qeu sea con el Arduino)
Que en lugar de al ordenador se conecte al Arduino
posteriormente los datos que reciba volverlos a enviar al puerto serie del ordenador.
Es decir intercalarlo entre el cacharro y el PC para mientras hacer algo con los datos.
Pero los que lleguen al PC tienen que ser los mismos que salieron del cacharro.

El cacharro en cuestion es un cuentavueltas de Scalextric pero de otra marca.


SAludos y gracias a los que me leais.
Title: Re: Arduino como puente RS-232
Post by: jorgepl on May 11, 2012, 02:08 pm
Hola anggar,

Si lo que quieres es "espiar" el puerto serie (leer los datos pero no modificarlos), lo único que tienes que hacer es llevar la linea correspondiente (supongo que Tx del cuentavueltas) a la línea Rx del arduino a través de un driver RS232 (MAX232 o compatible) para que ajuste los niveles de tensión.
Title: Re: Arduino como puente RS-232
Post by: anggar on May 13, 2012, 06:26 pm
Hola Jorge
y eso como lo hago?
veras el tema es que no necesito modificar los datoos
lo que quiero es intercalar el arduino enmedio para poder enviar los datos por bloutouch a telefonos android

en realidad o que no se es si poniendo un conector rs232 macho y uno hembra en la caja conectados deberia de pasar la señal y seguir es decir es como poner un alargador de corriente pero ademas desviar la señal para usarla en el emisor bloutouch

los datos pueden haber sido tratados o no poruqe de eso se puede encargar el arduino o el software de android.

A alguien se le ocurre algo?

gracias
Title: Re: Arduino como puente RS-232
Post by: Heke on May 13, 2012, 07:46 pm
SI no la han quitado, en los ejemplos del ide tienes uno que coge los datos del puerto serie y los envia a otro.

Se llama MultiSerialMega.pde

Luego a nivel hardware te hace falta cacharrines como este que adaptan nivel ttl a rs232:
(http://www.emartee.com/Images/websites/emartee.com/RS232-Board-2.jpg)
Title: Re: Arduino como puente RS-232
Post by: anggar on May 14, 2012, 09:53 am
Gracias Heke por contestar.

He encontrado el ejemplo: TwoPortreceive, en este se recibe por dos puertos series y se envian lso datos al puerto serie del arduino. A parte con los datos se podra hacer lo que se quiera

El tema era asegurarme de que hay que usas el adaptador de TTl a RS232 o directamente con una clavija puedo coger los datos de TX y mandarlos al RX de la otra y viceversa y mientras pasarselos al serie del arduino.

como puedes ver solo soy aficionadillo a estas cosas y me faltan muchos conocimientos.

Entiendo por tu mensaje que necesito dos de esos uno de entrada y otro de salida, tengo que buscar a ver si los encuentro por ebay, uno de ellos seguro que si.

Saludos.
Title: Re: Arduino como puente RS-232
Post by: anggar on May 14, 2012, 09:59 am
Vale acabo de encontrar el otro ejemplo
pero solo vale para el arduino mega debe de ser por que el one solo tiene un puerto serie
entiendo que debo de poner los dos adaptadores del puerto serie.
El codigo es muy facil de adpatar.
En cuanto los consiga pondre mis avances y si he conseguido hacer lo que quiero.

Se aceptan sugerencias.

Gracias
Title: Re: Arduino como puente RS-232
Post by: Heke on May 14, 2012, 10:10 am
No necesariamente el arduino solo puede tener un puerto serie.

Mira esto:
  http://arduino.cc/hu/Tutorial/SoftwareSerial (http://arduino.cc/hu/Tutorial/SoftwareSerial)
Title: Re: Arduino como puente RS-232
Post by: anggar on May 22, 2012, 10:49 am
Hola a todos.
Gracias a los que me han intentado ayudar.
De momento mintras me llegan los modulos RS-232 y el modulo blootouch para hacer el puente y enviar los datos por blootouch
he recibido un modulo de estos:

http://www.ebay.es/itm/Arduino-DB9-RS232-Wireless-Bluetooth-Module-Slave-Serial-4Pin-DB9-Male-Female-/160799222877?
pt=LH_DefaultDomain_0&hash=item2570616c5d

y no consigo que funcione.

Se supone que es un modulo bloutouch normal pero para capturar datos que lleguen por el puerto serie (de cualquier aparato qeu tenga dicha conexion,video, termometro, etc. y enviarlo por bloutouch para recogerlo por un ordenador o telefono

como se ve en el video:

Yo pensaba que podria sertvirme para lo qeu yo quiero incluso sin usar un arduino.
Es decir si lo interpongo entre el aparato y el ordenador al que tengo conectado mi aparato enviaria los datos por bloutouch

Pero es qeu no consigo ni que se encienda

Si lo conecto al arduino como si fuese un blootouch normal VCC GRN RX y TX y le pongo los codigos que he encontrado por ahy no hay manera que los compile bien
algunos usan librerias que instalaen su sitio pero todas me dan problemas

hay algun ejemplo que pueda usar para probarlo y que no me de problema?

Podeis ayudamre?

Saludos.





Title: Re: Arduino como puente RS-232
Post by: anggar on May 22, 2012, 11:03 am
Perdon se me olvido el video:

http://www.youtube.com/watch?v=IrrBGuVxFXQ

y otro para que se vea el parato:

http://www.youtube.com/watch?feature=endscreen&v=tppM8OzKB3Q&NR=1

Saludos.
Title: Re: Arduino como puente RS-232
Post by: anggar on May 24, 2012, 10:05 am
Me da que ha venido roto porque solo con alimentarlo al del video se le enciende un led.
el mio no hay manera lo he probado todo a cambiarlo incluso de sitio los cables
pero nada no se ha cosacado.

se os ocurre algo?


Saludos.
Title: Re: Arduino como puente RS-232
Post by: anggar on May 30, 2012, 09:11 am

SI no la han quitado, en los ejemplos del ide tienes uno que coge los datos del puerto serie y los envia a otro.

Se llama MultiSerialMega.pde

Luego a nivel hardware te hace falta cacharrines como este que adaptan nivel ttl a rs232:
(http://www.emartee.com/Images/websites/emartee.com/RS232-Board-2.jpg)


Gracias Heke.

Segun lo que me indicastes he comprado 2 modulos como el que me indicas, parecidos.
He intentado hacer una primera prueba para lo que quiero
de momento he conectado el aparato en cuestion a uno de los modulos y de momento este se enciende el led luego funciona.
he conectado el modulo a GND y a 5 v y por otro lado el TX del modulo al pin 2 y el RX del modulo al pin 3 (al principio lo hice con el 0 y 1) pero no se encendia el led de recepcion

he compilado varios ejemplos que se suponia funcionarian parecia todo facil
pero algunos ejemplos que requieren de algunas librerias mejoradas no me han funcionado bien errores de compilacion

y con los mas sencillos que no habia problemas de compilacion cambiado los pines a los apropiados he intentado recibir del aparato al arduino y ver el resultado en la consola y nada
no se recibe nada

Me han dicho que no podre porque el arduino solo tiene un puerto serie y que deberia enviar los datos a un LCD (con esto no tengo problema pero aun no he tenido tiempo de probarlo.)
es asi? no podre leerlo en la consola?
hay manera de hacerlo?

se supone que lso datos vienen en cadenas de 21 bytes

Bueno no se si tu o alguien mas me puede ayudar con esto.
Hasta que no reciba nada o no vea lo que recibo no puedo seguir con el tema de interpretar lo qeu me llega

Gracias de antemano y saludos.

Title: Re: Arduino como puente RS-232
Post by: jorgepl on May 30, 2012, 10:08 am

Me han dicho que no podre porque el arduino solo tiene un puerto serie y que deberia enviar los datos a un LCD (con esto no tengo problema pero aun no he tenido tiempo de probarlo.)
es asi? no podre leerlo en la consola?
hay manera de hacerlo?


¿Has probado con la librería SoftwareSerial como te dijo Heke?
http://arduino.cc/en/Reference/SoftwareSerial (http://arduino.cc/en/Reference/SoftwareSerial)

Esta librería crea el puerto serie que necesitas para leer los datos del dispositivo en el Arduino.

El ejemplo que ponen es lo que quieres hacer: Pasar los datos de un dispositivo conectado por un puerto serie al PC a través del USB de Arduino

Después solo tendrías que añadir el tratamiento que quieres hacer de esos datos en la placa de Arduino, si quieres hacer algo con ellos. Pero para probar que funciona puedes utilizar este ejemplo.

Si no te sirve esto, pon el código que has probado y un esquema de la conexión que haces para poder encontrar los fallos y las posibles soluciones
Title: Re: Arduino como puente RS-232
Post by: anggar on May 30, 2012, 11:54 pm
Hola de nuevo Jordi y compañia

estoy leyento la referencia sobre softwareserialPrintln
http://arduino.cc/es/Reference/SoftwareSerialPrintln

y tengo una duda

con la sentencia

SoftwareSerial serial(6, 7);

estamos estableciendo los pines 6 y 7 como los puntos de entrada de RX y
TX no?

como es que despues dice:

// read the analog input on pin 0:
  valorAnalogico = analogRead(0);

parece que ahora lee el pint 0

es un error del ejemplo? o es que yo estoy equivocado?

Saludoss
Title: Re: Arduino como puente RS-232
Post by: Cheyenne on May 31, 2012, 08:40 am
Es un ejemplo en el que leen la entrada analógica A0 para después enviar su valor por puerto serie con la librería.
Title: Re: Arduino como puente RS-232
Post by: anggar on May 31, 2012, 06:44 pm
Ya no se que probar. Estoy desesperado.


Desde que compre el Arduino con un completo Kit de sensores no he hecho mas que probar cosas y desde el primer dia encantado con los resultados.

Los ejemplos de los sensores mas variados me salen pero ahora me he quedado estancado intentando leer un aparato que trasmite datos por Puerto Serie.

He probado de todo todos los ejemplos librerias y codigos que he visto por hay y nada que no va.

Pongo algunas fotos y el codigo con que lo estoy probando ahora por si alguiien puede echarme una manita (que no sea al cuello)

No soy capaz de insertar fotos ni el codigo html del blog que uso para escribir rapidamente en los blog con imagnes.
Os pongo el enlace a las fotos y al codigo en un blog que he creado para mis avances (parones) con el tema Arduino.
si no os importa hasta que sepa como hacerlo en este foro os pongo el enlace.

http://www.apptecnicos.blogspot.com.es/2012/05/problemas-intentando-leer-el-puerto.html (http://www.apptecnicos.blogspot.com.es/2012/05/problemas-intentando-leer-el-puerto.html)

Saludos y gracias a todos.

Por cierto os pasa a vosotros que en cuanto pasais de 10-12 lineas en estos post no hay quien los edite porque se va continuamente al principio?

Gracias de nuevo
Title: Re: Arduino como puente RS-232
Post by: yopero on May 31, 2012, 10:31 pm
Para empezar yo quitaría toda la parafernalia de LCDs, etc y programaría para que Arduino encienda un led si recibe datos de tu cacharro.
Con eso nos aseguramos que el tema hardware esta OK.
Title: Re: Arduino como puente RS-232
Post by: anggar on Jun 07, 2012, 12:46 pm
Hola yOPERO

Gracias por leertelo y contestar.

El tema del LCD lo puse para ver lo que se leia en caso de que se leyese ya que el echo del Rs-232 en el ordenador no pued efuncionar a la vez que esta conectado el Rs-232-

sigo sin poder conectarlos no se si sera tema de los valores con lo que emite mi cacharro cuentavueltas.

Mira te dejo un enlace a un blog que he abierto para ir poniendo lo que vaya consiguiendo hay puedes ver algo de lo que quiero conseguir.

http://apptecnicos.blogspot.com.es/2012/06/proyecto-blak-box-para-slot.html

Saludos y gracias de nuevo
Title: Re: Arduino como puente RS-232
Post by: anggar on Nov 18, 2012, 07:49 pm
Hola de nuevo
como no me salia el tema de leer los datos me dediqeu a otro montaje que necesitaba hacer
Ahora he retomado el tema de leer datos por el puerto serie.

Ya tengo el aparatito para conectar el rs-232 con el arduino conectado a los puertos Rx y TX

pero no consigo leer los datos que envia el cuentavueltas.
he probado todos los codigos he intentado crear al mio propio pero nada no lo consigo.

Os pongo en antecedentes,
lo qeu necesito es lo minimo para despues cuando pueda leer los datos ya los tratare como necesite

Lo que necesitaria por si alguien me puede ayudar es leer un puerto serie que conecto a los pines 0 y 1 (supongo que esto esta bien)

ahora le digo que mientras que exista buffer me lo lea y lo mande echo serie del puerto virutal del arduino

los datos los envia el cuentavueltas en secuencias de 21 bytes

alguien podria ayudarme con este tema?

Gracias por adelantado.
Title: Re: Arduino como puente RS-232
Post by: anggar on Dec 09, 2012, 10:23 pm
Hola despues d emiles de pruebas sigo sin poder leer mi cuentavueltas
alguna idea?
Gracias.
Title: Re: Arduino como puente RS-232
Post by: masteron on Dec 10, 2012, 10:05 am
Prueba lo que te dijo yopero, y si no te funciona, pon el código para que podamos verlo
Title: Re: Arduino como puente RS-232
Post by: anggar on Dec 10, 2012, 08:41 pm
Hola masteron
mira te pongo el codigo que estoy intentando ahora auqneu he probado con otras librerias.

Este es el codigo que he probado para enviar codigos a traves del puerto serie, funciona perfectamente con lo que el modulo serie esta bien y bien conectado, lo corro con el arduino independiente para poder enviar por cable al ordenador y en este con el Dockling lo recibo perfectamente.

#include <SoftwareSerial.h>
// software serial #1: TX = digital pin 2, RX = digital pin 3
SoftwareSerial portOne(2, 3);

// software serial #2: TX = digital pin 4, RX = digital pin 5
// SoftwareSerial portTwo(4, 5);

void setup()
{
  // Start the hardware serial port
//  Serial.begin(9800);

  // Start each software serial port
  portOne.begin(4800);
// portTwo.begin(4800);
}

void loop()
{
// ESCRIBIR POR EL PUERTO SERIE1

for (int i=0; i <= 255; i++){
 
portOne.write (i);
 
}

   
  }
Title: Re: Arduino como puente RS-232
Post by: anggar on Dec 10, 2012, 08:43 pm
Este es el de recibir el qeu no me funciona.

monto el cronometro como entrada conectado al mismo puerto serie, se encienden los led y aparte estaba probado con el montaje anterior.

lo unico que recibo es -1 -1 -1 -1 -1 nada de lo que tenia que recibir

#include <SoftwareSerial.h>

#define rxPin 2
#define txPin 3
#define ledPin 13

// configura un nuevo puerto
SoftwareSerial miSerial =  SoftwareSerial(rxPin, txPin);
byte pinEstado = 0;

void setup()  {
  // define el modo para los pines tx, rx, led:
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  // configura el ratio de datos para el puerto SoftwareSerial
  miSerial.begin(2400);
  Serial.begin(9600);
}

void loop() {
  // escucha la llegada de nuevos datos serie:

// if (miSerial.available()) {

  char unChar = miSerial.read();
  // imprime el caracter:
// miSerial.print(unChar);
  Serial.print(unChar,DEC);
   Serial.println();
  Serial.print(unChar,HEX);
  Serial.println();
 
 
  // Comunta un LED para que veas que la cosa viva
  // este LED se enciende con cada NUEVO caracter recibido:
  toggle(13);
// }
}


void toggle(int pinNum) {
  // Establece el pin del LED usando la variable pinEstado:
  digitalWrite(pinNum, pinEstado);
  // si el pinEstado = 0, lo establece a 1, y vice versa:
  pinEstado = !pinEstado;
// Serial.println(pinEstado);
 
  delay (500);
}
Title: Re: Arduino como puente RS-232
Post by: anggar on Dec 10, 2012, 08:53 pm
y por ultimo os pongo lo que recibo si conecto el cronometro directamnente al PC a traves de Docklight o sea que el crono tambien funciona ya que recibo lo que tenia que recibir aunque no se porque por triplicado.

son tiras de 21 bites.

A ver si con esto me podeis ayudar o detectar que es lo que hago mal.

Saludos y Gracias.

10/12/2012 20:51:05.997 [RX] -
224  INICIO SECUENCIA 001 021 002 000 002 000 062 161 000 005 000 000 000 080 000 000 000 078 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 001 021 002 000 002 000 062 161 000 005 000 000 000 080 000 000 000 078 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 001 021 002 000 002 000 062 161 000 005 000 000 000 080 000 000 000 078 000 235  FINAL SECUENCIA
10/12/2012 20:51:08.534 [RX] -
224  INICIO SECUENCIA 002 021 002 000 002 000 000 162 000 000 000 000 000 000 000 000 000 189 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 002 021 002 000 002 000 000 162 000 000 000 000 000 000 000 000 000 189 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 002 021 002 000 002 000 000 162 000 000 000 000 000 000 000 000 000 189 000 235  FINAL SECUENCIA
10/12/2012 20:51:11.034 [RX] -
224  INICIO SECUENCIA 003 021 002 000 002 000 000 163 000 000 000 000 000 000 000 000 000 191 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 003 021 002 000 002 000 000 163 000 000 000 000 000 000 000 000 000 191 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 003 021 002 000 002 000 000 163 000 000 000 000 000 000 000 000 000 191 000 235  FINAL SECUENCIA
10/12/2012 20:51:13.982 [RX] -
224  INICIO SECUENCIA 004 021 002 000 002 000 027 169 000 000 000 000 000 170 171 170 171 139 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 004 021 002 000 002 000 027 169 000 000 000 000 000 170 171 170 171 139 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 004 021 002 000 002 000 027 169 000 000 000 000 000 170 171 170 171 139 000 235  FINAL SECUENCIA
10/12/2012 20:51:21.030 [RX] - 224  INICIO SECUENCIA 005 021 002 000 002 000 027 169 168 000 000 000 001 000 007 002 112 004 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 005 021 002 000 002 000 027 169 168 000 000 000 001 000 007 002 112 004 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 005 021 002 000 002 000 027 169 168 000 000 000 001 000 007 002 112 004 000 235  FINAL SECUENCIA
10/12/2012 20:51:27.876 [RX] - 224  INICIO SECUENCIA 006 021 002 000 002 000 027 169 168 000 000 000 002 000 006 131 096 118 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 006 021 002 000 002 000 027 169 168 000 000 000 002 000 006 131 096 118 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 006 021 002 000 002 000 027 169 168 000 000 000 002 000 006 131 096 118 000 235  FINAL SECUENCIA
10/12/2012 20:51:32.499 [RX] - 224  INICIO SECUENCIA 007 021 002 000 002 000 027 169 168 000 000 000 003 000 004 097 048 036 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 007 021 002 000 002 000 027 169 168 000 000 000 003 000 004 097 048 036 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 007 021 002 000 002 000 027 169 168 000 000 000 003 000 004 097 048 036 000 235  FINAL SECUENCIA
10/12/2012 20:51:38.259 [RX] - 224  INICIO SECUENCIA 008 021 002 000 002 000 027 169 000 000 000 000 004 000 005 117 032 131 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 008 021 002 000 002 000 027 169 000 000 000 000 004 000 005 117 032 131 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 008 021 002 000 002 000 027 169 000 000 000 000 004 000 005 117 032 131 000 235  FINAL SECUENCIA
10/12/2012 20:51:41.847 [RX] - 224  INICIO SECUENCIA 009 021 002 000 002 000 000 164 000 000 000 000 000 000 000 000 000 198 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 009 021 002 000 002 000 000 164 000 000 000 000 000 000 000 000 000 198 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 009 021 002 000 002 000 000 164 000 000 000 000 000 000 000 000 000 198 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 010 021 002 000 002 000 027 169 168 000 000 000 005 000 003 096 096 087 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 010 021 002 000 002 000 027 169 168 000 000 000 005 000 003 096 096 087 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 010 021 002 000 002 000 027 169 168 000 000 000 005 000 003 096 096 087 000 235  FINAL SECUENCIA 224  INICIO SECUENCIA 011 021 002 000 002 000 028 169 000 000 000 000 005 000 039 131 064 216 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 011 021 002 000 002 000 028 169 000 000 000 000 005 000 039 131 064 216 000 235  FINAL SECUENCIA
224  INICIO SECUENCIA 011 021 002 000 002 000 028 169 000 000 000 000 005 000 039 131 064 216 000 235  FINAL SECUENCIA
Title: Re: Arduino como puente RS-232
Post by: Warcrackers on Jul 17, 2013, 10:35 am
Hola soy nuevo en la pagina un saludo a todos.

Espero puedan ayudarme la verdad creo que es simple os explico lo que quiero hacer:
Con un arduino nano quiero almacenar los datos de un puerto serie y luego llevar mi
Arduino nano como un "pendrive" a otro puerto serie y mediante un boton re transmitir
esos datos continuamente, se podra? Gracias po su tiempo.  :)