Go Down

Topic: arduino i2c skicka tal (Read 2210 times) previous topic - next topic

mjost

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

addeswe

Jag antar att du vet hur man skickar data via i2c. Använd en union på både master och slave.

Code: [Select]

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]);
}


Code: [Select]

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. :-)
"Knock, knock." - "Who's there?" - very long pause…. - "Java."

Go Up