Jag antar att du vet hur man skickar data via i2c. Använd en union på både master och slave.
Master:
union {
float f;
unsigned char c[4];
} data;
data.f = 100.55;
for(int i = 0 ; i < 4 ; i++) {
Wire.write(data.c[i]);
}
Slave:
union {
float f;
unsigned char c[4];
} data;
data.c[0] = Wire.read();
data.c[1] = Wire.read();
data.c[2] = Wire.read();
data.c[3] = Wire.read();
Nu har du värdet 100.55 i data.f. Hoppas det inte blev allt för snurrigt.