Go Down

Topic: Small potentiometer range to give full 0-5V? (Read 7040 times)previous topic - next topic

Jan 28, 2013, 10:18 pm
Hi All
Here's the problem:
I want to control a potentiometer with a foot pedal. Pot is read by Uno analog input. If I connect the potentiometer direct to the foot pedal axis, I will get a a range of about 40 degrees movement on the pot. This is actually 20 degrees forward and 20 degrees backwards with center off (for forward and backward speed control).
I know there are commercial products out there such as actuators and foot pedals as well as means to extent the range of the pot mechanically, but this is a hobby project and I want to keep cost low and mechanically simple.

40 degrees on a standard 270 degree pot translates to a value of about 152 in the ADC register. This is too small for me, I would like to use as near to full range of the register as I need presision (well 70-80% will still be good).

My other idea is to electronically amplify this with opamps but I must have been sleeping when we studied opamps in class all those years ago. I can not come up with a circuit.

So, anybody got any ideas? With opamps, I want to input say 2.5V-3.5V and want to circuit to output about 0-5V which I then use as analog input. Upper and lower limit must be adjustable.
What would you call a opamp circuit like that (since just about all opamp circuits got names )

Thanks

Grumpy_Mike

#1
Jan 28, 2013, 10:23 pm
Why not use a reduced referance voltage to get the full swing from your reduced angle of movement.

#2
Jan 28, 2013, 10:42 pm
Thought about that, but that would mean that I have to start from the one end of the pot which is near mechanical stop. I need to allow room for adjustment, electrically and mechanically.
But I won't rule this idea out completely.

Grumpy_Mike

#3
Jan 28, 2013, 10:50 pm
Ok, how about using a rotory shaft encoder and just counting pulses.

#4
Jan 28, 2013, 10:56 pm
Cost. Plus I would need 6 digital pins (3 per pedal for A,B and Z signals), which I don't have.

silverxxx

#5
Jan 28, 2013, 10:57 pm
For an opamp you would need an inverting circuit where you replace the virtual ground at the (+) input with a reference (pot) to remove the offset.  The gain should be 5 but you could make it adjustable, too. Some other factors to consider are the power supply, most op amps do not like 5V single supply power, so you need probably one of those fancy cmos ones. Then there is the output swing, that depends on your choice of power supply and op amp. You want to make sure it can swing to zero and it can reach 5V.

Another option would be to use a higher power supply for the potentiometer and use some diodes (or a zener diode) to remove the offset. The higher supply would act as an amplifier. But that could break the arduino if it gets in the analog pin, so this also presents problems.

Grumpy_Mike

#6
Jan 28, 2013, 11:01 pm

Cost. Plus I would need 6 digital pins (3 per pedal for A,B and Z signals), which I don't have.

Any other vital information you are withholding?

arduinohabib

#7
Jan 29, 2013, 01:44 am
Why don't you use the "map" function? analogRead the footpedal when you aren't stepping on it, write it down, the analogRead it when you press it all the way down, then
Code: [Select]
`val=analogRead(A0);val=map(val, reading_when_not pressed, reading_when_pressed_all_the_way_down, 0, 1023);`
What is man's best friend? The breadboard!

nickgammon

#8
Jan 29, 2013, 02:20 am
That won't increase the accuracy of the reading.
Please post technical questions on the forum, not by personal message. Thanks!

arduinohabib

#9
Jan 29, 2013, 03:01 am
Then an op amp, I guess
What is man's best friend? The breadboard!

Grumpy_Mike

#10
Jan 29, 2013, 05:01 am
How about an absolute rotary encoder, these are not very expensive and they don't use up interrupt pins:-
http://uk.farnell.com/austriamicrosystems/as5040-assu/encoder-magnetic-rotary-10bit-16ssop/dp/1630800

#11
Jan 29, 2013, 08:19 am
Thanks guys for the replies sofar.

@Grumpy_Mike: Not sure what other vital information I'm with holding I just don't have spare pins and want to stick to using the analog input. Another consideration is that encoders needs to be reset every time to find reference and the absolute one might be low cost, bust still expensive in time spend building and setting it up.

@silverxxx: You right about wanting to swing to close to the supply rails and use a low supply voltage. I remember something that the output becomes too erratic?

hmmm I've been looking for  a solution for this for a while now. Looks like I then have to either get an actuator made for this, or go the mechanical way of increasing the travel of the pot.
Another idea I'm working on is using a slider pot, it has a shorter travel.

nickgammon

#12
Jan 29, 2013, 10:48 am
Your original figures give you quite a bit of precision (1 in 152). Is that not enough?
Please post technical questions on the forum, not by personal message. Thanks!

#13
Jan 29, 2013, 11:19 amLast Edit: Jan 29, 2013, 11:33 am by MaxHeadroom Reason: 1

Your original figures give you quite a bit of precision (1 in 152). Is that not enough?

Consider that this is a forward backward control with center off, so in fact I have then only 0-76 each way.
Then, I set some dead band around the center, reducing it even more.
I also have a quick calibrate function for the maximum ends where I store the center point and maximums in EEPROM, this must be within the range.
There must also be some leeway for the center point calibration.

It is getting a bit skinny now

Only then do I
Code: [Select]
`int speed = map(potValue, centre+deadBand, maxTravel, minSpeed, maxSpeed)`  for forward speed and Speed is within 0-255 for the PWM

fungus

#14
Jan 29, 2013, 01:34 pm
Gearbox?
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Go Up