Arduino UNO CCTALK

Hola a todos,

Estoy realizando un proyecto de comunicación Serie mediante el protocolo CCTALK el cual me he planteado resolverlo con un Arduino Uno.

El protocolo CCTALK usa 1 solo cable para recibir y transmitir datos. Del Arduino Uno me salen en los pines 0 y 1 los correspondientes RX y TX, pero en cuanto intento subir allí el programa compilado con algún cable conectado en esos dos pines desde el IDE de Arduino me peta.

Como me encontré ese problema estoy usando la librería AltSoftSerial la cual usa los pies 8 y 9 para la comunicación en Serie y vi que daba buenos resultados.

Mi problema viene, cuando si desconecto uno de los cables, puedo leer perfectamente el tráfico del protocolo CCTALK pero cuando pongo los dos, que son necesarios para leer y escribir, dejo de recibir trafico.

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
   altSerial.begin(9600);

}

void loop() {
  if (altSerial.available()) {
    int c = altSerial.read();
    Serial.println("LEIDO ---- ESTO: ");
    Serial.print(c);
     if (c == 2){
       int destino = c;
       Serial.print("Destino: ");
       Serial.println(destino);
       int suma = c;
       bool finsh = false;
       char msg;
       int len_msg;
       int num = 1;
       while (!finsh || altSerial.available()){
           c = altSerial.read();
           num++;
           Serial.println("LEE DATOS");
           int cot = 0;
           switch (c){
            case 252:{
                while(cot<5){
                  Serial.println("ENVIADO ACK");
                  altSerial.write(ack[cot]);
                  cot++;
                }
                finsh = true;
            
            }break;

Adjunto el esquema de conexiones, es muy simple, con una protoboard he conectado el cable DATA del CCTALK a los cables RX y TX, y el GND que me viene también lo he conectado al GND de la placa arduino.

No sé si me dejo algo, espero que alguien sepa como resolver esto, como ya he dicho, si desconecto uno de los cables puedo recibir sin problemas, en cambio cuando están los dos soy incapaz de leer el trafico ni de enviar ningún tipo de señal.

Para descartar posibles errores, he comprobado mediante una interfaz de leer puerto serie y un USB CCTALK translator que el programa en arduino funciona y cuando le envío el mensaje X el me responde con el mensaje Y que tiene configurado.
Es decir, solo no me funciona cuando lo conecto a la máquina en cuestión.

El protocolo CCTALK usa 1 solo cable para recibir y transmitir datos. Del Arduino Uno me salen en los pines 0 y 1 los correspondientes RX y TX, pero en cuanto intento subir allí el programa compilado con algún cable conectado en esos dos pines desde el IDE de Arduino me peta.

Los pines 0 y 1 son los de comunicación serie físicos del arduino. Son los mimos que se usan para poder subir un sketch o ver en el monitor serie que esta pasando. Si los usas olvidate de todo lo demas o bien cuando vayas a subir un sketch debes desconectar al menos lo que este en el pin 0.

Como me encontré ese problema estoy usando la librería AltSoftSerial la cual usa los pies 8 y 9 para la comunicación en Serie y vi que daba buenos resultados.

El IDE actual viene con soporte nativo de SoftwareSerial. No recomiendo que uses altSoftSerial porque ya esta en deshuso mas alla que te funcione o no.

Respecto de lo que estas haciendo, no puedes unir los dos cables RX y TX a tu conexión CTALK.
Se supone que tienes que implementar una interfaz para poder hacerlo. La interfaz no es directa.

No se cual es pero he visto otros casos y bastería con tener un par de compuertas digitales con un inhibidor. SI se estra transmitiendo se inhibe la parte RX y vice verza.

Hi,
Aqui hay un link que explica como hacer el cable y un moton de links que te da informacion acerca del cctalk. tiene mucha informacion y vas a tener que leer mucho.

Respecto de lo que estas haciendo, no puedes unir los dos cables RX y TX a tu conexión CTALK.
Se supone que tienes que implementar una interfaz para poder hacerlo. La interfaz no es directa.

No se cual es pero he visto otros casos y bastería con tener un par de compuertas digitales con un inhibidor. SI se estra transmitiendo se inhibe la parte RX y vice verza.

Pero porque entonces cuando le envió mensajes desde el ordenador me contesta perfectamente, pero cuando lo conecto a la máquina no? Y aún así también soy capaz de leerlos mensajes de la máquina.

Hi,
Aqui hay un link que explica como hacer el cable y un moton de links que te da informacion acerca del cctalk. tiene mucha informacion y vas a tener que leer mucho.

Usefull ccTalk links – ccTalk tutorial

Ya lo he visto y entero. Yo lo que intento hacer es al revés de este tutorial, allí hace una conexión de arduino a esclavo (selector de monedas), y yo lo que quiero hacer es justo lo contrario, de máquina a esclavo(arduino)