I want to start designing an Arduino project and have telemetry readings that indicate tilt or angle of placement.

Would an accelerometer be the best for determining tilt? Are there good tutorials?


if you aren't moving, the accelerometer will give you the direction of gravity. if you are moving and hoping to use this orientation data for control you'll need to incorporate at least one more sensor. The extra sensor is needed because you have no method separating the acceleration of gravity and the acceleration of the sensor. The other drawback is that the accelerometer has no way to measure heading.

A magnetometer would also give you a measurement of orientation but the calibration process can be a little intimidating. It makes up for the deficiencies of the accel.

If you're looking for a weekend project I recommend using a three axis accelerometer.

  • $\begingroup$ Could you elaborate on why you would need another sensor if in motion? Also, what would this ideal "other sensor" be and why? $\endgroup$
    – Paul
    Apr 4 '16 at 19:17
  • 2
    $\begingroup$ It's maybe worth mentioning that a basic tilt sensor could be sufficient to distinguish between up and down. $\endgroup$
    – Biscuits
    Apr 5 '16 at 0:49
  • $\begingroup$ I was unaware of those. It doesn't look like you could get an angle measurement out of one which may be a problem. Maybe if there was an array with small steps in angle offset between sensors... $\endgroup$
    – holmeski
    Apr 5 '16 at 11:33

I agree with holmeski's suggestion that an accelerometer is the way to go for static projects, but if you need more sophisticated measurements, an accelerometer/gyroscope combo will be necessary.

The MPU-6050 is a chip that contains a 3-axis MEMs accelerometer and gyroscope with a very small footprint. I have personally used the GY-521 breakout board, and I was impressed with the performance given the low price (~$5). Furthermore, there is documentation for the MPU-6050 on the Arduino website, which migh help for your project (http://playground.arduino.cc/Main/MPU-6050).

One caveat to the MPU-6050 is that you will have to put some thought into filtering the measurements. Accelerometers suffer from low frequency noise, while gyroscopes suffer from high frequency noise. When I used the MPU-6050, I used a complimentary filter to combine the measurements from the accelerator and gyroscope into a single measurement for angle, which worked well. In retrospect, it would have been better to implement a Kalman Filter instead. Both will not only enable you to complete your project with the MPU-6050, but you will get to implement software filters, which is a good experience.


From my understanding a simple accelerometer and magnetometer works.

Currently I use a 9DOF grove IMU. It has an I2C connection and contains both of those plus a gyroscopic sensor.

They've got this github for examples too, see Seeed-Studio/Grove_IMU_9DOF.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.