Potentiometer 5 or 6 detents

Hey everyone!

I’m currently looking for a potentiometer(that you can wire onto the robot controller) that has at least 5 or 6 detents that can click into those positions.

Does any body have any recommendations to where we can purchase these potentiometers? Let us know :]


What are you trying to use it for? You might want to be careful if you’re using a pot for anything relatively large, it may be hard to calibrate and to prevent from breaking. We attempted to put a pot on a rotation table to limit it’s rotation to 180 degrees at one point, but a faulty autonomous program would have none of that! You may want to consider using rotary encoders or some other means of measurement.

I dont think Ive ever seen a stand-alone pot that had position detents. I have seen pots with knob designs that used detents - but I think they were custom designed for the application

ie, use an off the shelf pot, but make your own knob or level with click-stops where you want them to be.

We want to use it to select autonomous modes. Anything under 12 detents will work. We are just having trouble actually finding any. I know some of you have used these… a part number would be great! Thanks!

It seems like it may be rather hard to find such a pot. You may want to just use a standard pot, however, and program the robot to respond to ranges of analog input rather than a specific value. So that you could turn it approximately to the correct program, rather than the specific value.

If you don’t have too many autonomous programs you could use a series of switches as a binary selector. You’d only need 5 bits (5 inputs out of the 4 ports) to cover the 12 modes you seem to need and more.

We found one on digikey, but it doesnt have a shaft (to accept a knob) and is rather small at only 16mm wide.

Thanks for the help, we will keep looking. I am sure they are out there.

If you look around page 1433 of the digikey catalog (which I totally knew off the top of my head), you’ll find a type of switch that might be better for your application. It’s called a rotary switch, and they come in all kinds of configurations, including SP6T. You can solder a bunch of resistors around the terminals, and it will behave exactly how you described, and can look like a pot to the OI or RC.

Edit: Kris beat me to it by a few minutes. And with impressive knowledge of the Digikey catalog! :slight_smile:

One way to get approximately what you want is to wire up a SP6T switch as follows:

+5V connected to a resistor R, then to the common lead.
Signal wire should be joined to common lead.

Lead 1: straight to GND
Lead 2: thru resistor value R/4 to GND
Lead 3: thru resistor value 2R/3 to GND
Lead 4: thru resistor value 3R/2 to GND
Lead 5: thru resistor value 4R to GND
Lead 6: thru BIG resistor to GND

This sets up a 6-setting voltage divider which will give the following voltages across the common resistors:

Position 1: ~0V
Position 2: 1V
Position 3: 2V
Position 4: 3V
Position 5: 4V
Position 6: 5V

You can set up ranges in the program to check for this. These resistor ratios can all be approximate, but that gives you the widest separation possible for the analog input, reducing the risk of mistaking one mode from another.

Of course, binary inputs are simpler if you have enough pins.

See Kris Verdeyen and eugenebrooks posts in this thread for a solution on the OI that doesn’t require any additional hardware. http://www.chiefdelphi.com/forums/showthread.php?t=44662

Yeah, what Kris said. The TechnoKats used a many-position rotary switch with resistors between each contact as an automode selector on the KatsKlaw OI in 2004.

forgive my ignorance of this years OI, is the red LED display still able to display user selected numbers?

set your code to read a joystick or pushbutton input - everytime you push the button increment a counter, and display it on the OI LED numeric output - that is your autom mode number

you could have up to 256 different auton modes that way.

The rotary switch seems like a good solution, if it does in fact have solid feeling stops, so we could easily differentiate between the 6 positions.

The only problem is, I would be the one wiring it up and have practically zero electronics knowledge and would need some help selecting resistors and wiring it up to specific pins on the switch and the RC. If you guys could help me out there, It would be HUGELY appreciated.

The idea here isn’t as much the actual resistance as the concept. The current through the circuit I is defined as I=V/Rtotal where Rtotal is the sum of the two resistors: the initial one connecting from 5V to the common lead, and the secondary resistor from the switch to ground. Then the voltage measured at the common lead can be calculated as V=IRswitch (the resistance from the switch to ground). The actual R value will cancel out.

----- Rc ----- Rswitch <–the dashes are just spacers here…
Rc=R, Rswitch=#R

Hope this helps.

Sort of… In reality, I still have no idea where to start. I am an ME/MFE with very little electronics experience… so please bear with me. :wink:

Heh, not a problem. You should probably choose some value of R in the 10000s to protect the input (I believe).

EDIT: It seems the OI manual suggests 100k ohms for a value. This seems resonable as it will only allow for a very small amount of current between 5V and gnd (I=V/R=5/(100000)=50uA). This is for safety as well as to prevent against large flows of current when using the OI. Don’t forget the OI has its own built in fuses to protect itself, but you still want to be careful.

My plan was to mount it on the RC.

The RC has the same thing going for it. The only thing I would be concerned with however is that using a rig like this might be a bit cumbersome. Personally I’d use a 100k ohm potentiometer, rather than a rotary switch, and just set specific ranges as certain programs. This could also be reprogrammed to allow for smaller ranges -> more programs. That’s up to you though. The math/physics behind the voltage divider idea would stay the same though, you’d just hook it to an analog input on the RC rather than one on the OI.

If the switch is going on the OI, the actual resistance is rather important. The OI analog inputs want to see a variable resistance between ~2k and 100k to give the full range of values.

For a six-position rotary switch, I’d use six 15k resistors wired like this:

+5 <----/\/\/--*--/\/\/--*--/\/\/--*--/\/\/--*--/\/\/--*--/\/\/--*
 OI                      |
analog input <-----------'

The ***** characters represent the six positions of the rotary switch, and the ^ is the common connection.

What you’ll get from this is the equivalent of a joystick with six discrete resistance values: 15k, 30k, 45k, 60k, 75k, and 90k. You should use a dashboard program to determine what the actual numbers end up being, and choose appropriate ranges in the software to decide which of the six positions is chosen.

I actually never knew that, though in retrospect I suppose it makes sense. Thanks for the clarification!

I see a business opportunity for Andy Mark/IFI! Latching potentiometers/ prewired variable resistance rotary switches!


I thoroughly googled for a pre-made product that would suit your needs but came up with nothing. The best solution in this thread is Alan Anderson’s, which is exactly the method I was going to post before I saw his.

I’d check to see if any of the students on your team are taking/have taken electronics classes at school. If so, you can just buy a rotary switch and some 15 Ohm resistors (if you need more inputs, decrease the Ohm rating of the resistor. What you want = 100 / Number Of Switch Settings + 1. Get all of this stuff at RadioShack) and give it to the student to wire up. Anyone with basic knowledge in wiring should be able to tackle this circuit.