Problema enviar peso por i2c

Amigos del foro, estoy intentando comunicar 2 arduinos conectados a una celda de carga por el puerto i2c, pero tengo un problema al recibir el dato de peso que me envia el esclavo, pues no puedo visualizar correctamente el dato en el maestro(solo recibo 255.00 y de allí no se mueve mas el dato) , ya que el maestro tiene que sumar su peso mas el dato de peso recibido del esclavo.
Esto es lo que recibo en el monitor serial:
Solo se mueve el dato de peso del maestro pero el dato del esclavo se queda estatico y me muestra 255.00

255.00+1.882 = 256.898

255.00+1.844 = 256.859

255.00+1.854 = 256.847

255.00+1.834 = 256.852

255.00+1.765 = 256.802

Este es el código del maestro

#include <Wire.h>
#include "HX711.h"

#define DOUT  A1
#define CLK  A0

HX711 balanza(DOUT, CLK);

float datoEsclavo;
float result;

void setup()
{
  Wire.begin();        //Iniciamos el bus I2C 
  Serial.begin(9600);  //Iniciamos el Serial

  balanza.set_scale(380492.5); // Establecemos la escala
  balanza.tare(10);  //destarando
}

void loop()
{
   
  Wire.beginTransmission(0xF5); // Enviamos a la dirección 0xF5 en binario 111 0101
  Wire.write(1);         //Enviamos un 1          
  Wire.endTransmission(); //Terminamos la trama    

  
  Wire.requestFrom(0xF5, 6);    // Pedimos 12 bytes al slave 0xf5// NO SE SI ESTAR BIEN PEDIR 12 BITS YA QUE EL PESO TIENDE A VARIAR HASTA 6 DIGITOS
  while(Wire.available())    // Mientras tengamos datos.
   {
    datoEsclavo = Wire.read(); // Leemos el resultado      
   }
  result = datoEsclavo + balanza.get_units(1); //Sumamos los pesos y mostramos los resultados en el monitor
  
  Serial.print(datoEsclavo);
  Serial.print("+");
  Serial.print(balanza.get_units(1),3);
  Serial.print( " = ");
  Serial.println(result,(3));
  Serial.println();

}

Y este es el codigo del esclavo

#include <Wire.h>
#include "HX711.h"

#define DOUT  A1
#define CLK  A0

HX711 balanza(DOUT, CLK);
boolean datoRecibido;

void setup()
{

  
  Wire.begin(0xF5);                // Address 0xf5
  Wire.onRequest(requestEvent); // Activamos evento de peticion
   Wire.onReceive(receiveEvent);//Activamos evento de lectura.
 
  balanza.set_scale(386666.75); // Establecemos la escala
  balanza.tare(10);  //Destarando
}

void loop()
{
  delay(100);
  
}

//Evento de peticion se activa cuando un master nos pide que le enviemos algun dato
void requestEvent()
{
  if( datoRecibido = true){
  Wire.write((balanza.get_units(1),3)); // Enviamos el resultado del calculo 
  }    
  datoRecibido=false;                 
}

void receiveEvent(int recepcion)
{
  unsigned int pedido;
  while( Wire.available()) //Leemos hasta que no haya datos. 
  {
     pedido = Wire.read(); //Leemos 
     if (pedido = 1)
     datoRecibido = true;    
  }

}