Como separar int o long en bytes

Hola Juantreras, intenta probar con el siguiente código en el emisor:

unsigned int micontadorpulsos=1550;   //la variable que aumento cada vez que recibo un pulso nuevo
byte byte_bajo;
byte byte_alto;
void setup() {

  Serial.begin(9600);
}

void loop(){
  byte_bajo=micontadorpulsos & 255;
  byte_alto=(micontadorpulsos >> 8 ) & 255;
 
  Serial.print('S', BYTE);
  Serial.print(byte_bajo,BYTE);
  Serial.print(byte_alto,BYTE);
  Serial.print('F', BYTE);
  delay (2000);
}

Y el siguiente en el lado del receptor:

byte byte_bajo;
byte byte_alto;
unsigned int contadorPulsos;

void setup() {
  Serial.begin(9600);
}

void loop() {
  //Compruebo si han llegado datos por el puerto serie
  if (Serial.available() > 0) {
    //Si el dato que ha llegado es S significa que comienza la transmisión
    //del contador de pulsos.
    if (Serial.read() == 'S') {
      byte_bajo = Serial.read(); //Leo el byte_bajo del puerto serie
      byte_alto = Serial.read(); //Leo el byte_alto del puerto serie
      contadorPulsos = ((byte_alto << 8) && (byte_bajo)); //Junto todo en una variable
      Serial.read(); //Como el protocolo envia una F la leo y en este caso la
                      //desecho porque no la necesito para nada
    }
  }
}

En este caso las tramas se envían con un protocolo como ha dicho Igor_R que es Sbyte_bajobyte_altoF.

Espero que te pueda ayudar.

Saludos chato_sat