Dial spinner input

Hello everyone,

I want to be able to enter input with several spinners. So what I want is to have:

A: 1 spinner (such as the dial on a master lock) with the numbers 0-11. Obviously this would be custom-made. However I want to be able to spin it and then the Arduino could tell what number it was on. I.e I spin the dial to "9" preset. The Arduino reads 9.

B: A second spinner like the first, but with values 0-40, and able to read both whole numbers and 1/2 numbers. I.e it can read 8 or 8.5 based on the dial.

So I don't know how I would make these custom dials. Should I use a potentiometer or something like that? Any ideas? Thank you

A selector switch might work for the first digit. I've never seen one with 40 positions.

An absolute encoder might be another way to go. Have you considered thumbwheel switches?

I think your biggest problem is determining which DIRECTION you are "spinning" the dials.

Paul

These things are very expensive but a lot of money can be saved if you make your own. Use an AS5040 hall effect absolute encoder, and arrange a small diametrically magnetised magnet to rotate a few mm in front of the chip. This splits one rotation into 1024 steps.

An alternative: Use rotary encoders and let the Arduino vary the numbers by counting up/dn. Display the current value(s) on a 7-segment display near the knob, three digits needed per your description.

Something like this: http://uk.rs-online.com/web/p/mechanical-rotary-encoders/2632918/ has enough resolution for 40 positions, but doesn't have detents and is quite complicated to interface to needing 7 or 8 pins and a lookup table...

MarkT:
but doesn't have detents and is quite complicated to interface to needing 7 or 8 pins and a lookup table...

Yes it does, I have one. True it doesn't say so in the data sheet.