Gyro Recommendation

Greetings all.
I am looking for a recommendation for a gyro component which I can use with Arduino which I can either get a consistent angle reading (beyond 360°) or at least one that does not sense, and thereby reset, when it’s original position is returned to.

I have bought a few USB gyros which know when they have returned to their start position and then reset back to zero due to an incorporated accelerometer.

The basics of my project are that I will attach this gyro to a platform which will, over time, rotate well over 360°, but I want to get a continuous reading of the degrees rotated based solely on the rotation of the sensor and not how many times it reached a return point. I will have no useful way of measuring this rotation by way of switch or sensor at the axel or mount as the mount itself will also change it’s orientation during use.

Any help would be MUCH appreciated


It sounds like you’ve been using a more advanced sensor that does some processing of the gyro readings. At a basic level, a gyro just outputs the rate of rotation (not a rotation angle), which can be integrated over time to keep track of the angle. However, they generally drift over a longer period of time (more than a few seconds), which can cause them to become inaccurate. To compensate for this, the gyro readings are usually combined with other sensors (such as an accelerometer for pitch and roll and a magnetometer for yaw) to provide an absolute reference. If you want to try this, you might consider our our MinIMU-9 v6 Gyro, Accelerometer, and Compass.

Alternatively, if you already have a sensor that outputs the angle within a limited range, you might try using that and keeping track of the cumulative angle in your own software. For example, one approach could be to keep track of the count of full rotations and add 1 to it whenever the angle changes from near 360° to 0°. Similarly, you would subtract 1 whenever it goes from near 0° to 360°. That would allow you to compute the cumulative angle ( \text{Cumulative Angle} = (\text{Rotations}×360)+\text{Angle} )