Electronic – arduino – How to get gyro sensor data (L3G4200D) into degrees/sec

arduinogyrosensor

I've been using a gyroscope sensor for an Arduino project. It's all hooked up and working but I have no idea what the units of the data it's giving me are in. I try to spin the board in my hand at what should be roughly 90 deg/sec but I'm getting numbers from the gyro of 2000-5000 range. I've just tried scaling it down and calibrating the scale factor by visually rotating the board 90 deg/sec. I know there has to be a better way to do this. I've been over the data sheet many times and I'm still not getting it. It says the units are mdps/digit which I've never heard of before.

Best Answer

It says the range can be set to 250/500/2000 DPS, which I think is the maximum angular speed the device can measure (i.e 2000 DPS is the fastest setting)
DPS stands for Degrees Per Second, so 360 DPS means 60 RPM (revolutions per minute) or 1 revolution per second.

The mdps/digit stands for Milli Degrees Per Second, so (I think) for instance the value of 70 mdps/digit for the 2000 full scale range could be converted to degrees per second by dividing by 1 / 0.07 = 14.286. 1 revolution per second should therefore be 360 * 14.286 = 5413 Make sure you are reading the output registers correctly, the data is a 16-bit value in 2's complement (i.e the MSB is the sign bit, then 15 bits for the value)

Try the above and see how it goes.