Hola a todos !
Estoy trabajando en un proyecto de comunicación serie con arduino uno. He estado revisando los posts que hay sobre este tema pero ninguna refleja exactamente mi problema.
Se trata de un sistema que consta de una máquina a la que se encuentra conectados varios dispositivos de tal forma que la máquina envía órdenes a los dispositivos y éstos le comunican una respuesta a dicha orden.
Dicha comunicación se trata de una comunicación half duplex y asíncrona a 9600 baudios, 1bit de start, 8 bits de datos, sin paridad y 1 bit de stop.
Ejemplo:
Orden -> 002 001 001 228 001 023 Respuesta -> 001 000 002 000 253
La orden que transmite la máquina y la posterior respuesta del dispositivo se transmiten por un solo cable, primero la máquina manda la orden completa y a continuación el dispositivo hace lo mismo con la respuesta.
La idea del proyecto es utilizar el Arduino UNO para que simule a los dispositivos, es decir que reciba las órdenes de la máquina y sea capaz de enviar una respuesta a dicha orden.
Hasta ahora he conseguido programar con el IDE de Arduino un programa que lee las órdenes provenientes de la máquina:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
Serial.begin(9600);
mySerial.begin(9600); //Iniciamos puerto
}
void loop() // run over and over
{
if(mySerial.available()>0)
{
int c = mySerial.read();
Serial.println(c);
}
}
Resumiendo conecto el cable de la máquina al arduino al pin digital 2 que he definido como RX mediante la librería SoftwareSerial y el programa es capaz de leer las órdenes perfectamente.El problema viene a la hora de enviar dichas órdenes por el mismo cable.Al intentar conectar el pin digital 3 (definido como TX) al cable que viene de la máquina para transmitir la orden, la comunicación se para y no se leen ni transmiten órdenes.
No sé si habrá algún conflicto al conectar TX, hay algún fallo en la programación..La verdad es que no sé muy bien cómo seguir enfocando el proyecto y por eso estará muy agradecido a que alguien me arrojara algo de luz en este tema.
Muchas gracias y saludos!
PD: Adjunto 2 imágenes para intentar aclarar un poco más el problema.