1
\$\begingroup\$

I'm trying to read a throttle position sensor with my Arduino Mega. This is the schematic for a normal TPS. It's a basic potentiometer.

http://autolabscopediagnostics.com/images/tpscircuit.gif

However, this particular TPS only has 2 pins coming out. There's no ground, there's just the 5 volt reference and the signal return. I have one pin hooked up to the 5Volts on my Arduino and the other hooked up to an analog pin, which I am reading with analogRead. I'm getting strange readings at different positions. At position zero, it jumps around at around 300. As soon as I turn the sensor at all, it automatically jumps to 1023 and stays there.

What is the point of the ground in that diagram? What am I missing here, and how does that tie in to the odd TPS readings?

\$\endgroup\$
  • 1
    \$\begingroup\$ Datasheet says? \$\endgroup\$ – Ignacio Vazquez-Abrams Oct 18 '16 at 0:09
  • \$\begingroup\$ Which datasheet? @IgnacioVazquez-Abrams \$\endgroup\$ – Isaiah Taylor Oct 18 '16 at 0:12
  • \$\begingroup\$ @IgnacioVazquezAbrams I doubt that a public datasheet is available for some random car part. \$\endgroup\$ – jms Oct 18 '16 at 0:17
  • 2
    \$\begingroup\$ Are you sure that the case isn't the ground for this sensor? \$\endgroup\$ – duskwuff Oct 18 '16 at 0:22
  • 2
    \$\begingroup\$ The ground connection provides a zero volt reference for one end of the sensor potentiometer. With the ends of the sensor pot connected to zero/ground and +5 volts, the sensor can output a voltage between 0 and 5 volts proportional to the throttle position. \$\endgroup\$ – Peter Bennett Oct 18 '16 at 0:23
1
\$\begingroup\$

A proper 3-terminal TPS is a potentiometer. It produces some proportional voltage between ground and the reference voltage at the top (5V or whatever) A linear pot will output a voltage proportional to the distance between ground and the top.

But if you have only two terminals, then you only have a variable resistance (or you could call it a rheostat). You could kludge a way to read your rheostat by first measuring the total resistance of the rheostat, and then selecting a "pull-down" resistor to "work against" the variable resistance in your rheostat TPS. You must know the TPS resistance in order to select an appropriate value for a pull-down resistor.

\$\endgroup\$
0
\$\begingroup\$

It could be a 3 pin TPS or more likely a mistaken logic diagram for a 2 pin TPS unless case grounded.

My educated guess is a 2 pin TPS will have a fixed load R to ground so that a bridge voltage can be measured relative to some stable Vref. But there is NO STD.

I believe loss of contact is zero throttle and internal short is full throttle !!

Take a look at some defective TPS waveforms here and notice the 0 throttle voltage above ground. http://autolabscopediagnostics.com/tps.html

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$
  • \$\begingroup\$ Either that or whatever box the TPS connects to has a current source which feeds a constant current to the TPS, and the voltage drop over the (variable) resistance is then sensed. \$\endgroup\$ – jms Oct 18 '16 at 0:48
  • \$\begingroup\$ there may be many ways to do it, but the real examples shown are not very linear or consistent. \$\endgroup\$ – Sunnyskyguy EE75 Oct 18 '16 at 2:07
0
\$\begingroup\$

As @duskwuff comments, it is possible that it is a 3-terminal part, with the three terminals being the 2 pins and the case. Some metal component of the case may have a screw hole with an ground marking nearby.

Simple resistance measurements will tell you if this is true : if there is a fixed resistance from the "+V" terminal to this ground point, and a variable resistance between the wiper and gnd, then you just need a wire from the Gnd terminal to your Arduino's 0V.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.