Float value through Serial Port..

Ok im receiving all the bytes correctly, but how i can concatenate this 4 bytes in a float variable?

I tried in the traditional mode ( variable << 8 , etc, etc), but i can't, well arduino don't let me :stuck_out_tongue: ...

I think there's a couple of ways you could approach this...

The first is to use a data type known as union, which I think would work something a little like this (type-as-I-think,-probably-won't-run-code :-)):

union {
byte asBytes[4];
float asFloat;
} foo;

So, you'd fill the byte array using the bytes you get (e.g. foo.asBytes[0] = 0x00) and then read the value as float (e.g. foo.asFloat)--however, this requires the format of the float to be the same as what the computer sends.

Alternatively you could try casting (a pointer?) to the float as a byte array and accessing the bytes individually.

I'm a little hazy on the exact details and it's possible the actual result may be "undefined" in certain situations, but hopefully it's a pointer in some direction... :slight_smile:

--Phil.