arduino i2c skicka tal

Hej
jag skulle vilja flyta ett tal typ ”100.55” med data typ av float en från en arduino till annan arduino med i2c
Har förstått att det inte går att flytta data typen float utan behöver få över den till text data typ
Men hur gör jag det?
så att det funkar med i2c

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. :slight_smile: