enviar datos por Tx y Rx

Buenos días,

Soy nuevo en este foro y nuevo en el uso de arduino. Tengo que enviar por un puerto D2BUS unos comandos en hexadecimal, creando un puerto virtual y usando el programa Terminal como ''sniffer'' para ver exactamente que estoy enviando por el puerto serie.

Este es mi codigo:

byte message1[] = {0x04,0x00,0x50,0x00,0x11,0x00,0x43,0xD8};
byte message2[] = {0x07,0x00,0x50,0x01,0x11,0x31,0x32,0x80,0x61,0x26,0x10};
byte message3[] = {0x07,0x30,0x51,0xBE,0x17,0x06,0x00,0x00,0x00,0x9A,0x99,0x3A }; 
byte message4[] = {0x06,0x00,0x51,0x01,0x11,0x8F,0xAA,0x55,0x9D,0x33};
byte message5[] = {0x06,0x00,0x51,0x01,0x11,0x07,0x55,0xAA,0x12,0xC7};

void setup() {
  // put your setup code here, to run once:
Serial.begin(19200);
//Serial.write();
 delay(15000);
}

void loop() {

Serial.write(message1, sizeof(message1));

delay(200);



Serial.write(message2, sizeof(message2));
delay(300);

 
Serial.write(message3, sizeof(message3));
delay (500);

for (int i = 0; i<=7000; i++){

 

 delay(6000);

Serial.write(message4, sizeof(message4));

 
 delay(6000);

Serial.write(message5, sizeof(message5));

}
}

He adjuntado imágenes de lo que obtengo en el sniffer, como se puede observar, antes de enviar el mensaje 1 envía un código... El problema es que cada vez que reinicio el arduino, envía un código diferente antes de enviar lo que yo le ordeno y creo que esto hace que el microcontrlador de la muestra que estoy testeando, no llegue a encender.

Un saludo

Gracias por su tiempo

ejemplo1.png

ejemplo2.png

Hola Yuguero,

Te has dado cuenta de que ese código que te sale antes es parte del último mensaje? lo que está pasando es que estas enviando en bucle todos los mensajes y depende cuando paras el programa coges unos datos u otros.

Prueba a hacer un enable de envío de tal forma que se envíen o solo una vez o cada x tiempo