I am currently working on a project, on which a little guidance would be much appreciated!
A stepper motor connected via a belt drive to a worm gearing, allowing me to rotate a heavy object.
The stepper motor should be controlled by a knob of some sort, on which 1 revolution of the knob should translate into 1 revolution of the object. (With the current gearing this means the stepper has to complete 104 revolutions)
Ideally the knob should be able to turn continuously, and have a high "resolution" meaning precise positioning of the object.
From what I understand, what I should use is a potentiometer or rotary encoder, but I am having trouble finding out exactly which type is the best for my application.
Any thoughts on this? Or perhaps maybe even a suggestion on how to do this better?
Thank you in advance!
You can use two encoders, for coarse and fine motion.
I am afraid that two encoders is not an option in my application.
I've been looking deeper into the different types of encoders, and so far I think that a "Incremental magnetic encoder" is the way to go, but as I have zero experience with rotary encoders I am really not sure if this is the best solution.
A normal pot will only offer a resolution of 10 bits, that is a reading from 0 to 1023. Is it setting the final position of the motor and gearing?
A rotary encoder will typically give you 24 steps per revolution so you need some form of feedback on what position you have set, that is the knob position is not enough.
This is a good place to start reading about them Arduino Playground - RotaryEncoders
Yes the knob is setting the final position of the motor/gearing/object.
I was thinking on using something like this magnetic encoder:
Do you think this would give me a precise movement of the object? And maybe more important, is it even possible to with a stepper motor and an Arduino?
That encoder will work for your intended application if 10 or 12 bit resolution of 360 degrees meets with you needs. But, you'll find no ready made libraries (AFAIK) that support that exact serial data stream output format. That said, it shouldn't be difficult to write your own handler for that encoder. It's basic "bit-banged" serial at its easiest.
But, you'll find no ready made libraries (AFAIK) that support that exact serial data stream output format.
It is just a simple SPI protocol. But the 10 bit one is no better than an analogue pot at quite a bit more cost.