Go Down

Topic: Arduino como puente RS-232 (Read 7558 times) previous topic - next topic

yOPERO

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.
Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

anggar

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

anggar

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.

anggar

Hola despues d emiles de pruebas sigo sin poder leer mi cuentavueltas
alguna idea?
Gracias.

masteron

Prueba lo que te dijo yopero, y si no te funciona, pon el código para que podamos verlo

anggar

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

   
  }

anggar

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

anggar

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

Warcrackers

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.  :)

Go Up