1
\$\begingroup\$

I am trying to read the values from a Force Sensitive Resistor with Arduino. Actually, I am already reading them, but it only works if I use a 10 Ohm or lower resistor and it really heats up. (See attached schematic). If I try to use a higher resistor, Arduino continuously reads 1023, as if there was no FSResistor. How can I read the values of the FSR without having to use a 10Ohm resistor that heats up?

Note that the FSR, without applying any force has 50 Ohms resistance, and when applying pressure, it goes down to 5-10 Ohms.

Schematic

asked Jul 13, 2018 at 8:39
\$\endgroup\$
5
  • \$\begingroup\$ Switch positions between resistor and pressure sensor and try again. \$\endgroup\$ Commented Jul 13, 2018 at 8:53
  • \$\begingroup\$ @Dorian, I have tried and with a 10Ohm resistor I get the same. With a 10k Ohm resistor I read 0, instead of 1023. \$\endgroup\$ Commented Jul 13, 2018 at 9:06
  • \$\begingroup\$ Ok , you go way to far , try something in the middle , if you have a 50 ohm pressure sensor then use a 500 ohm resistor, that will give you 5V/11 voltage ,around 500mV without pressure, that is readable by ADC. With 10K you have 5V*50/10000 ~ 25mV hardly usable. Put the pressure sensor on the ground side. \$\endgroup\$ Commented Jul 13, 2018 at 9:24
  • \$\begingroup\$ For a better resolution use analogReference(INTERNAL) which will give you a better resolution of arround 1mV/unit on analogRead() \$\endgroup\$ Commented Jul 13, 2018 at 9:35
  • \$\begingroup\$ Thanks, it is working much better now. Finally I am using a 220 Ohm resistor. Just a question, why its better to put the pressure sensor on the ground side? \$\endgroup\$ Commented Jul 13, 2018 at 9:57

1 Answer 1

2
\$\begingroup\$

schematic

simulate this circuit – Schematic created using CircuitLab

Vo = V1* R2 /(R1+R2)

Total power Po = V1*V1/(R1+R2)

Adc unit (5V reference) = 5V/1023 ~= 5mV

Adc unit (1.1 internal reference) = 1.1/1023 ~= 1mV

No pressure R1 = 470 ohm:

  • Vo = 5*50/520 = 480mV ~= 96(5V) or 480(1.1V) ADC units
  • Po = 25/520 = 48mW

No pressure, R1 = 10 kohm:

  • Vo = 5*50/10050 = 25mV ~= 5(5V) or 25(1.1V) ADC units.
  • Po = 25/10050 = 2.4mW

No pressure, R1 = 10 ohm:

  • Vo = 5*50/60 = 4.16V ~= 803(5V) ADC units.
  • Po = 25/60 = 0.41W

Same calculation for pressure applied until the sensor has 10 ohms:

R1 = 10 ohm:

  • Vo = 5*10/20 = 2.5V ~= 500(5V) ADC units.
  • Po = 25/20 = 1.25W, that's why the resistor is heating

It's better to put the sensor on the ground side because you can use 0 to no pressure voltage instead no pressure voltage to 5V then subtract the no pressure voltage. You also can use a lower reference for better resolution which is not possible with the sensor on the upper side since V0 will be higher than the reference voltage.

By using the internal reference you will lose the ratiometric output but the gain in resolution will compensate this.

JRE
75k10 gold badges115 silver badges197 bronze badges
answered Jul 13, 2018 at 10:31
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.