Rotary potentiometer with steps/positions

It works perfectly... providing that you choose to save the previous state so re entry places you at the position you exited at. Positional feedback must be from the visual display and not the knob. You don't read the knob you use the knob to read... Regardless of what the knob really is, rotary encoder, pot or rotary switch. Using a rotary encoder is probably the best move as it doesn't have the 270 deg rotational limitation of a pot or the mechanical stops that most rotary switches do.
{Edit RKJ}

Bob

Thanks for the suggestions and ideas. For me I guess a normal pot would be ok since I only need to. Switch between 2-3 pages.

Now the next question. Can I use a digital (pwm) pin for this? This can be made to know what position the pot is right or do I need an analog pin?

What type of pin should I use for a rotary encoder?

Boopidoo:
Thanks for the suggestions and ideas. For me I guess a normal pot would be ok since I only need to. Switch between 2-3 pages.

Now the next question. Can I use a digital (pwm) pin for this? This can be made to know what position the pot is right or do I need an analog pin?

What type of pin should I use for a rotary encoder?

A digital pin used in PWM service is an output pin, it could not be used to 'read' anything. Reading something is an inputting function for your arduino board. An analog pin must be used to read a pot because a pot is only capable of generating a variable DC output voltage to be wired to a analog input pin. A rotary encoder needs to use two digital input pins and depending if you want to use interrupts to service the encoder or not you may be limited to using digital pins 2 and/or 3.

Lefty

Ah, of course, thanks!

I think I might need to buy a Mega since I'm running out of pins. :slight_smile:

A rotary switch with resistors in series. As you turn the switch to the various poles the resistance changes and you use that resistance value to determine which page to turn to. Basically what you wold be making in a multi-tap voltage divider.

kf2qd:
A rotary switch with resistors in series. As you turn the switch to the various poles the resistance changes and you use that resistance value to determine which page to turn to. Basically what you wold be making in a multi-tap voltage divider.

Why not use a rotary encoder? It's what they're for.

Docedison:
It works perfectly... providing that you choose to save the previous state so re entry places you at the position you exited at.

That's precisely what makes the pot fail. There's situations where you can't turn it any further left or right. A rotary encoder turns forever.

Rotary encoders usually have a push switch in the knob, too. You can use it as "select" without taking your hand off it to press a separate button.

fungus:

Docedison:
It works perfectly... providing that you choose to save the previous state so re entry places you at the position you exited at.

That's precisely what makes the pot fail. There's situations where you can't turn it any further left or right. A rotary encoder turns forever.

Why must it be able to turn more left or right, as long as it can be turned to all the defined selections?

Rotary encoders usually have a push switch in the knob, too. You can use it as "select" without taking your hand off it to press a separate button.

So do some pots have a push switch built in. Also an encoder might have 200 steps per rev, your sketch has to jump through some hoops to limit the menu choices to just the number defined say a dozen or less?
Opps I said I was done with this topic didn't I? :wink:

Lefty

retrolefty:
That's precisely what makes the pot fail. There's situations where you can't turn it any further left or right. A rotary encoder turns forever.

Why must it be able to turn more left or right, as long as it can be turned to all the defined selections?

Because the value displayed won't always match the position of the pot.

The display/pot get out of sync when you go to submenus. You end up in situations where you might want to turn the pot left but it's already fully left so you can't.

I Think Young Person that you need to do some reading so that you have a better idea of what you have, what you want to do and how you are going to do it.
Before you start to work, You must "Plan your Work" and then you Must "Work Your Plan".

Bob

For me I guess a normal pot would be ok since I only need to.

Just so you know, there are digital pots that can be incremented / decremented via up/down buttons, making them far more usable here.

fungus:

retrolefty:
That's precisely what makes the pot fail. There's situations where you can't turn it any further left or right. A rotary encoder turns forever.

Why must it be able to turn more left or right, as long as it can be turned to all the defined selections?

Because the value displayed won't always match the position of the pot.

The display/pot get out of sync when you go to submenus. You end up in situations where you might want to turn the pot left but it's already fully left so you can't.

You still create problems that exist only in your mind. :wink:

If your sketch wants/needs to jump to a new sub menu, then the first choice it should display is that which corresponds to where the pot actually is at that specific time, simple. And again that doesn't select the displayed option as that takes an additonal user's action such as pushing the push button.

Lefty

These rotary encoders also embody a select switch by pressing down on the knob. (appologies for being a Sparkfun tart yet again).

However, having programmed a few of these menu systems using various rotary encoders (use a four line LCD for clarity of the scrolling menus in the users mind rather than the two line) I find that these type of units have fairly fine dentents (or 'dents'). It can make it easy to overshoot.

One of those clunky rotary switches (with resistors soldered between the tabs) will have a more positive feel and selection. A seperate pushbutton will be required for selection.

Regarding the pots.... I think you would have to account for hysterisis in your code as there is not the demarcation of clicks between the various states.

lemming:
These rotary encoders also embody a select switch by pressing down on the knob. (appologies for being a Sparkfun tart yet again).

Rotary Encoder - COM-09117 - SparkFun Electronics

However, having programmed a few of these menu systems using various rotary encoders (use a four line LCD for clarity of the scrolling menus in the users mind rather than the two line) I find that these type of units have fairly fine dentents (or 'dents'). It can make it easy to overshoot.

The cheap mechanical encoders suffer from pretty bad contact bounce and detent positioning that doesn't always seem to line up with the electrical signal transition positions. They can be made to work with lots of software fussing, but optical or magnetic encoders are a whole lot easier to live with.

One of those clunky rotary switches (with resistors soldered between the tabs) will have a more positive feel and selection. A seperate pushbutton will be required for selection.

Regarding the pots.... I think you would have to account for hysterisis in your code as there is not the demarcation of clicks between the various states.

By reading a 10 bit pot value and shifting the results right allows a much lower number of possible count possibilities, the problem of hysteresis or small count variations becomes a non problem. It's all about how many different values do you need from the pot as a ratio of 1023 possibilities. If you need only two value possibilities you shift the analogRead() results 9 bits right and the pot can only be seen as returning a 1 or 0 value, with the actual change being done at the 50% pot travel position.
Lefty

and detent positioning that doesn't always seem to line up with the electrical signal transition positions.

Most I have used only pass through the transition electrically when passing through it mechanically. When the control is sitting at rest the output is always the same.

What inputs will you be providing on the submenus? When using a rotary encoder, I generally use the built-in push button to cycle between different parameters or submenus, and the rotary motion to adjust the selected parameter.

Grumpy_Mike:

and detent positioning that doesn't always seem to line up with the electrical signal transition positions.

Most I have used only pass through the transition electrically when passing through it mechanically. When the control is sitting at rest the output is always the same.

I found that I could force encoder steps just by applying slight pressure against the encoder knob without having to go through a detent click. Not at all positions and not all the time, but it just didn't have the precision feel and operation of the optical encoder I have. Like I said it could be made usable but I found them to be rather flimsy in actual operation.
Lefty

dc42:
What inputs will you be providing on the submenus? When using a rotary encoder, I generally use the built-in push button to cycle between different parameters or submenus, and the rotary motion to adjust the selected parameter.

The same, either a switch with a built in momentary push switch or a separate momentary switch to select the displayed menu option.

Lefty

retrolefty:
I found that I could force encoder steps just by applying slight pressure against the encoder knob without having to go through a detent click. Not at all positions and not all the time, but it just didn't have the precision feel and operation of the optical encoder I have. Like I said it could be made usable but I found them to be rather flimsy in actual operation.

I have one encoder in which one of the transitions occurs more or less at the same position as the detent. My rotary encoder driver software has a 1-state hyteresis to make it insensitive to this. Every encoder I have purchased since has the state transitions away from the detent. The problem encoder has 16 detents/rev, whereas now I go for 8 or 12.