Receive data from linear potentiometer?

Hi. I'm a novice at this, trying stuff for the first time. I want to connect a set of (maybe 6?) 'softpot' linear potentiometers to an Arduino Duemilanove, via a breadboard, & then use the outputs to drive midi patches in Max.

Any ideas out there how to connect it up & get it going? I'm using MaxMSP 5 on Mac 10.4.

thanks :)

Could you explain "softpot" a little more ?

it's easy to connect 6 ordinary potentiometers to Arduino, they shold just be hooked up to the analog inputs as voltage dividers. One side to ground center to analog pin, other side to +5V.

Then use AnalogRead(pin number here) to read the pot, it will return a value between 0 (0V) and 1023 (5V)

Hi, thanks for the reply.

A softpot is a thin metallic strip encased in flexible clear plastic. The ones I have are about 25cm by 2 cm. They have 3 terminals at one end: centre and right connected to the top of the strip (right terminal is marked with an arrow pointing out), and left running down the side and connected to the bottom end of the strip.

The idea is, when you run your finger along the strip, it will send a variable resistance message, thus functioning like a mixer fader.

They're a bit expensive, which is why I'm being a bit cautious. Which pins of the Arduino to connect to? And should I add in a resistor somewhere? Any help much appreciated. :)

Centre to an analogue input pin, and the ends to the +5V and ground. There is no need for anything else to get you going.

However, you might like to consider what happens (what do you want to happen?) when you are not pressing on the pot. There will be no connection to the analogue input pin and so you will get readings that fluctuate all over the place when nothing is being pressed.


I bought 10 circular sofpots and have already burnt up two of them by connecting like is described here - centre to analog input pin, left (with triangle above) connects to 5v and right goes to ground.

I have also tried putting resistors (5-100 ohm) before the 5v go to the softpot but I always get a bad reading out of it (only about 1/4 of the softpots gives out a reading)

If i put a resistor that is lower than 10 ohm, the sofpots overheats and starts burning/smoking.

I think this is really wierd since I was under the impression that you couldnt burn up these sofpots with 5v

If anyone can spot a solution it would be much appriciated


It sounds like you are not connecting the wiper to the analogue input but to one of the rails. Then when you are at one end you have the whole supply across a very small resistor and you are drawing a lot of current. Check again the data sheet and make sure both ends of the pot are connected across the supply not the wiper.

Hi Mike and thanks for the quick reply

I connect the middle (wiper) to analog input 1. am very sure of this.

when you say rails you mean either 5v input or ground ouput; right?

Yes - The middle wire in a pot (wiper) might not physically be in the middle. Please check the data sheet of the pot you are using.

You can check your pins most easily by connecting the ones that you think are the power pins to a 5V supply and GND, and then connect the other one to a voltmeter. The voltage should change as you adjust the pot (or in this case, move your finger along it). If not, you’ve got the wrong pins. Change them and try again.

Do make certain (with the voltmeter) that you’ve really got 5V between the two leads of your power supply first.

You might try using that voltmeter (eh, multimeter) to connect up to the softpot with a resistance reading setting higher than the spec of the softpot. Two of the lines should give you an open reading (infinite resistance), two should give you the reading of the max value of the softpot. With those readings, you should be able to figure out which leads are for what (ie, which is wiper and which are for voltage/ground) without burning it up.

Now, as for what to do about keeping it from burning up - there should be some clues in the spec sheet; usually a resistor of a certain size is needed (as mentioned by someone) - but I would think the "output" would be after that resistor, with the wiper of the softpot connected to ground as well. So you would always measure the value of the extra resistor at minimum on the output.

Thinking something like (sorry for bad ascii art!):

100 ohm Softpot 5V ----/\/\/----+-----/\/\/\/\/\/\/\/\/\/------ GND | ^ | | | +------------- GND | Output to Arduino

thanks for the reply´s guys

one question: should it matter if I connect 5v to what should be connected to ground and connect ground to what should be connected to 5v ???

Shouldnt that just reverse the pot?

Best regards

On my example above, I am kinda intending the "100 ohm" resistor to be a current limiting resistor on the pot (if they are so fragile as to burn up under a low-current 5V source); reversing the connections (so that the 5V and grounds were swapped) would defeat that and probably burn the potentiometer out...?

Right pin 5v middle analog pin left pin ground usually... Usually...

Would this by any chance be what you are using?

If so, the data sheet is right here.

cr0sh you said:-

reversing the connections (so that the 5V and grounds were swapped) would defeat that

I can’t see how that is. Current has to flow from the power terminals through the pot to the other power terminal. To my mind it makes no difference where the protection resistor is, it will still limit the current. The arduino input is high impedance so that doesn’t affect things.
Can you explain where I am thinking wrong?

This is the data sheet

I bought the circular sensor

-Resistance - Standard: 10k Ohms

Hi Richard and thank for the reply

like you said "Connecting 5V to the top and bottom of a 10K pot should never burn it out"

This is why I just cant understand why this happens - If you look at the last page of the datasheet you see

Electrical Schematic


This is exactly how I plug it ( I have also tried plugging it with the V+ and GND reversed (but that gives the same result - only in reverse; that is, only 1/4 of the sensors gives out any reading if I put 5v trough a 20-50 ohm resistors and If I dont have the resistor it overheats and eventually burns.)

P.s when the sensor starts burning; small burning holes start burning up and getting bigger at the end of the circle on each side (that is on the touch surface; right before electricity comes from or goes to the pins)

No. I have never plugged V to the midle (collector)

I might have touched it but I cant remember the pot burning up straight after I did so - It burns up after having been connected for about a minute and half if plugged pin 1 straigt to 5v and pin 3 to ground

what I meant is that I have tried routing V through low ohm resistors 20 to 50 ohm, and that keeps the pot from burning or overheating, but I get a wrong reading from the sensor

When I connect the positive and negative leads of an ohmmeter to pin 1 and middle pin of the SoftPot I get an accurate reading from the softpot (that is 0 to 10 k if I remember correctly)

When I connect the positive and negative leads of an ohmmeter to pin 1 and middle pin of the SoftPot I get an accurate reading from the softpot (that is 0 to 10 k if I remember correctly)

No you should get 10K if you connect the two ends. If you connect pin 1 and the middle then you will get a varying resistance depending on whee you touch the pot.

There is no way you can get what you are saying if the data sheet is correct. So you have either misinterpreted what you are doing, the device is faulty or the data sheet that is posted doesn’t match your device.

I noticed that the datasheet specifies recommended operating power as 0.5W (under electrical specifications). For a 10k "pot" you would then need to supply about 7mA at 70V. For 5V this would be 100mA which may indeed burn the sensor if it expects 7mA only.

All in all I think the datasheet is at best unclear (why label plus and ground on a pot - they should be interchangeable for pure resistive loads). Perhaps you need to give the supplier a call to find out what the real interface requirements are.