Como separar int o long en bytes

Hay diferentes formas de "atacar" el problema....

  1. Mandas el dato en "raw", es decir, tal cual lo lees sin hacer ninguna operacion. A ver si me explico mejor.... XD
    Si estas midiento pulsos, imagino que estaras usando una variable de tipo byte o unsigned int (2 bytes) como contador, no?
    Puedes enviar este byte o estos dos, y en el otro lado haces la operacion de dividir entre el tiempo y el numero de pulsos por vuelta, etc.
  2. Mandas el float tal cual (4 bytes).

Para mandar el dato en ambas opciones, descompones en bytes (depende del tipo de variable que quieras descomponer) con las operaciones bitwise que han explicado mas arriba y usa Serial.print(mibyte,BYTE).
En el otro lado, tienes que "componerlo" consecuentemente a como lo has "descompuesto".
Imaginemos un unsigned int (ocupa dos bytes):

unsigned int micontadorpulsos; //la variable que aumento cada vez que recibo un pulso nuevo
byte byte_bajo;
byte byte_alto;
byte_bajo=micontadorpulsos & 255;
byte_alto=(micontadorpulsos >> 8 ) & 255;

Serial.print(byte_bajo,BYTE);
Serial.print(byte_alto,BYTE);

En el otro Arduino, ya sabes que primero te va a llegar la parte baja, y luego la alta.
Por lo cual tienes que hacer (asumo que has leido los dos bytes con Serial.read() ):

unsigned int mivariablerecepcion;
mivariablerecepcion=(byte alto << 8 ) ¦ (byte_bajo);

Espero que sirva

Saludos

Igor R.