Measure angle With High accuracy.

Hi,
I am trying to automate a monochromator table using dc motors and I need to measure the angle that the table subtends. I need atleast 0.1 degree of precision. what do I do? I tried using ADXL335 and I am able to get a precision of 1 degree which is very bad for adjusting! Is there a accelerometer with higher sensitivity? Please help…

Hi, welcome to the forum.

That is a sensor with analog output, you need at least a sensor with digital interface.

You might even use accelerator + gyro + filter to get the desired result. Better than 1 degree should be easy, but I don’t know if 0.1 degree is possible. I have not tested that.

Kalman Guide : http://forum.arduino.cc/index.php?topic=58048.0

I2Cdevlib : MPU-6050 6-axis accelerometer/gyroscope | I2C Device Library

Thank you, :)

I don't know if the MPU-6050 is good enough (and I'm too busy with my Arduino Yun to test it ::) ). The filter has a very big influence on stability of the resulting data, but 0.1 degrees is also very small. The MPU-6050 is worth trying.

The ADXL345 accuracy might be in the same range as the MPU-6050. Without software filter, they are both noisy and they drift. The ADXL345 costs more than the MPU-6050 but that does not mean that it is better, certainly not.

The MPU-6050 is 2.12 dollars on Ebay and is accelerator plus gyro. That means that a software filter can use both for a more accurate result.

You can choose either one, and set the range to the lowest value for more accuracy. Use a filter to smoothen the noise and test the result.

If accelerometer+gyro+filter won't give the required precision, perhaps consider optical encoders on the motors.

I have googled, I do not understand the why you need a accelerometer, but to make it short, to measure the angle you have to use an encoder

You can use accelerometer to measure the static acc of earths gravity and hence measure the angle subtended by earths gravity on the axis' of measurement.

i found this one http://www.dewetron.com/int/products/components/sensors/xsensmti/ http://learn.parallax.com/KickStart/28017

Accelerometers? :o Give me strength. The OP isn't interested in movement, he wants position, plain and simple. This would be like using a speedometer reading instead of your postcode.

I'd suggest a longish arm attached to convert that angular location into a linear one. Then you have your choices. Possibly a linear potentiometer.

I may not have a complete understanding of the parameters, but if I was simply trying to make a mirror or what-have-you turn to a very specific angle with high precision, I too would do it mechanically with a long arm. For instance:

l l
pin-----------------------------mirror----------------------pin
l l
l l

if each of those pins were hinged on a worm drive of a threaded rod (vertical lines), the number of turns varying slightly on either side could give you a very precise angle indeed

rytcd: I may not have a complete understanding of the parameters, but if I was simply trying to make a mirror or what-have-you turn to a very specific angle with high precision, I too would do it mechanically with a long arm. For instance:

l l pin-----------------------------mirror----------------------pin l l l l

if each of those pins were hinged on a worm drive of a threaded rod (vertical lines), the number of turns varying slightly on either side could give you a very precise angle indeed

This is more like it! At the far end of that arm could be a nut on a screw that is driven by a stepper. With the precision allowed by 200 steps per revolution of the thread, and each thread being something like a 20th of an inch, that arm wouldn't have to be very long to give a repeatability within a tenth of a degree.

https://www.google.it/search?q=gear+worm&espv=2&biw=1455&bih=705&tbm=isch&tbo=u&source=univ&sa=X&ei=mu-XVL2POMH0UuDngPgF&ved=0CCMQsAQ

http://www.mcallister.com/dprf-stepper-faq.html

stepper motor joined with a gear worm

The problem is that my resources are limited(not enough to make the gear worm stepper config etc). I had thought about the stepper motors but the problem is that I am already using a dc motor bench and to upgrade it to stepper would cost more. The bench has measuring scales attached to it which can measure up-to .01 degree of precision. And this bench is put in-between a goniometer and the Xray source, so I have only limited space. Thanks for the help guys. Much appreciated!!!

And I am trying to interface the MPU 6050 with the arduino. I am getting a lot of errors using the source code provided by Jeff Rowberg. So I dont know whether MPU 6050 would give me the accuracy I need. I was able to get +- 1 degree of accuracy with ADXL335 so I guess accelerometers are the way out of it.

rohithsaradhy: And I am trying to interface the MPU 6050 with the arduino. I am getting a lot of errors using the source code provided by Jeff Rowberg. So I dont know whether MPU 6050 would give me the accuracy I need. I was able to get +- 1 degree of accuracy with ADXL335 so I guess accelerometers are the way out of it.

This is doomed to fail.

rohithsaradhy: The problem is that my resources are limited(not enough to make the gear worm stepper config etc). I had thought about the stepper motors but the problem is that I am already using a dc motor bench and to upgrade it to stepper would cost more. The bench has measuring scales attached to it which can measure up-to .01 degree of precision. And this bench is put in-between a goniometer and the Xray source, so I have only limited space. Thanks for the help guys. Much appreciated!!!...

http://www.ebay.it/sch/i.html?_from=R40&_sacat=0&_nkw=gear+worm&_sop=2

if you have a broken printer you can find some gear reducer

stefa24: will this work?

https://learn.adafruit.com/adxl345-digital-accelerometer/programming

Sure, it will work. The ADXL345 is the same kind of sensor as the MPU-6050, one is not better than the other. Adafruit is a good site, they have good libraries, and they maintain the libraries. However, if you can get 0.1 degrees accaracy ... You have to test that for yourself.

But this is TOTALLY an inappropriate application for an accelerometer. Do you use the speedometer in your car to ensure that you’ve parked close enough to the kerb? Of course not, it’s plain dumb.

The importance of the angle in a monochromator is it’s STATIC position. It doesn’t matter one iota how fast it was moved to get there.

Dead reckoning is a method of navigation used by ships traversing oceans and it’s accepted that errors make it unreliable even for such an application. When it comes to the position of a slot on a monochromator, it’s just laughable.

See, the static gravity can be measured and hence the angle subtended by the earths gravity can be calculated. I am not going to measure the speed or the acc at which it is turning! Plain and simple.

Hey there

For your application I might suggest the AS5048 magnetic rotary encoder: http://ams.com/eng/Products/Magnetic-Position-Sensors/Angle-Position-On-Axis/AS5048A Engineering it into the shaft is a bit tricky (it doesn't come 'packaged' with a shaft and mounting screws like normal rotary encoders) it has astounding accuracy (14bit absolute) and speed, and is relatively cheap compared to other products in similar class

but their suggested application in the video is that you should use it for the rotary control on the front of a washing machine, which makes no sense!! the spec sheet recommends it could be used in robotics, which makes sense. i wouldn't be surprised it kuka used something like this in their robot axes.