Go Down

#### fofro

##### Nov 19, 2012, 08:38 pm
Hi!

I'm having trouble to read the voltage value of the potenciometer's wiper "leg".

I connected it to the 5V-GND of the Arduino, and connect the wiper into A0 analog pin. At 100ohms, I should have read 2.5V, but instead, I got 0,49V! I'm using Matlab instead of IDE.
I set the A0 pin in two different ways to see if it was a syntax error :

pinMode(A0,'input') and pinMode(14, 'input');

but none worked as supposed.Therefore, I connected the Arduino's 5V to A0 to see if I would get 5V, no problem. But with the potentiometer it's inconsistent.

Do I really have to set A0 as input(I believe I dont) in order to "tell" Arduino to increase its impedance?
Do I need to use any special potenciometer functions to read the values?(I believe I dont either)

Regards

#### fungus

#1
##### Nov 19, 2012, 08:42 pm

What's the value returned by analogRead(0)?

0.49 is after you've done some math on it. What's the raw, unmodified value?
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

#### retrolefty

#2
##### Nov 19, 2012, 08:57 pmLast Edit: Nov 19, 2012, 09:02 pm by retrolefty Reason: 1

What's the value returned by analogRead(0)?

0.49 is after you've done some math on it. What's the raw, unmodified value?

As a better electrical test, just use your multimeter to measure the wiper terminal voltage while it's wired up to the arduino and check the readings at the two ends of travel and while centered, and confirm that the meter reads 0, +5vdc, and +2.5vdc respectively.

Lefty

#### fofro

#3
##### Nov 19, 2012, 10:34 pm

What's the value returned by analogRead(0)?

0.49 is after you've done some math on it. What's the raw, unmodified value?

As a better electrical test, just use your multimeter to measure the wiper terminal voltage while it's wired up to the arduino and check the readings at the two ends of travel and while centered, and confirm that the meter reads 0, +5vdc, and +2.5vdc respectively.

Lefty

The returned value is about 100bytes(I don't recall the precise value) and to transform it into voltage, I just have to multiple it
for 5 and divide it for 1023 due to the pin's resolution of 10bits. The expected value would be 512bytes, which is not happening...

I measured the two ends and the wiper terminal and I got the expected values of 0, 5 and 2.5V respectively.

This is the script I have been using to drive a DC motor with an Arduino Motor shield:

function shield

a=arduino('COM3');

a.pinMode(12,'output');        %DIR A
a.pinMode(13,'output');        %DIR B
a.pinMode(9,'output');         %BRAKE A
a.pinMode(8,'output');         %BRAKE B
a.pinMode(3,'output');         %PWM A
a.pinMode(11,'output');        %PWM B
a.pinMode(14,'input');         % ??

b=0;

while(b==0)

a.digitalWrite(12,1); %
a.digitalWrite(9,0);
a.analogWrite(3, 255);

pause(5);

a.digitalWrite(9,1);
pause(5);

a.digitalWrite(12,0);
a.digitalWrite(9,0);
a.analogWrite(3, 255);

pause(5);
a.digitalWrite(9,1);

end

end

But the values returned by a.analogRead(0) don't correspond to the ones read by the multimeter...

#### fungus

#4
##### Nov 19, 2012, 10:44 pm

But the values returned by a.analogRead(0) don't correspond to the ones read by the multimeter...

Does the number vary as you turn the pot? What does it read at min/max?

No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

#### fofro

#5
##### Nov 19, 2012, 11:02 pm
I believe that the A0 pin's impedance is too small, giving a different voltage value on the wiper terminal. It needs to be a very high value in order to read voltage like a voltmeter does...

Anyone knows the A0-A5 pin's impedance? And if it's tunable?

#### Grumpy_Mike

#6
##### Nov 20, 2012, 12:28 am

I believe that the A0 pin's impedance is too small, giving a different voltage value on the wiper terminal. It needs to be a very high value in order to read voltage like a voltmeter does...

Anyone knows the A0-A5 pin's impedance? And if it's tunable?

It is nothing to do with the impedance. It is very high and connecting a low impedance to it will not affect the reading.

#### fofro

#7
##### Nov 20, 2012, 01:00 am

I believe that the A0 pin's impedance is too small, giving a different voltage value on the wiper terminal. It needs to be a very high value in order to read voltage like a voltmeter does...

Anyone knows the A0-A5 pin's impedance? And if it's tunable?

It is nothing to do with the impedance. It is very high and connecting a low impedance to it will not affect the reading.

Maybe it hasnt but I think it does. I use a.analogRead bc im using matlab instead of Ide environment...

#### fungus

#8
##### Nov 20, 2012, 02:32 am

Maybe it hasnt but I think it does.

Now you've done it...

No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

#### retrolefty

#9
##### Nov 20, 2012, 02:38 amLast Edit: Nov 20, 2012, 02:43 am by retrolefty Reason: 1
Not familiar with matlab programming 'language' but this from your listing looks wrong:

Code: [Select]
`potmcmt=a.analogRead(0)/1024*5`

No trailing ;
And not sure if integer math will work as truncation/rounding, will kill that calc, no?
Or is matlab converting the components to floating variables. I can't even see where
the potmcmt variable is declared?

Lefty

#### Grumpy_Mike

#10
##### Nov 20, 2012, 08:35 am
Quote
Maybe it hasnt but I think it does.

You can think what you want, but you can't alter the laws of physics by thinking. So while you think that is the problem I am telling you that it is not.

#### april.steel

#11
##### Nov 20, 2012, 09:02 am

Quote
Maybe it hasnt but I think it does.

You can think what you want, but you can't alter the laws of physics by thinking. So while you think that is the problem I am telling you that it is not.

More important I think that thinking helps us determine what the laws of physics are and we certainly do not have them all right yet!

#### Grumpy_Mike

#12
##### Nov 20, 2012, 09:09 am
True but we have this one right and have had so for over one hundred years.
This is not quantum mechanics you know!

Go Up