I hope I'm in the right place to ask, I couldn't find anything so I ask here, please tell me if I missed some relative topic.

I was following this tutorial : https://learn.adafruit.com/force-sensitive-resistor-fsr/using-an-fsr#in-depth-code-for-analog-fsr-measurements and the only difference is that I have a potentiometer instead of a 900K resistor. I put it to 14350 Ohms because it fits the tutorial just above the last one, on top of the same page. So here is the thing : I want to know the force in Newtons but the values I end up with are clearly wrong. A medium touch on the FSR is already > 3 Newtons, and it changes a lot when I turn the potentiometer to a higher resistance (and changing the value of that pota in the code too) : same force applied, different value of that force on the screen.

I know nothing about elecs so I would also like to know more about this part :

// Use the two FSR guide graphs to approximate the force
if (fsrConductance <= 1000) {
  fsrForce = fsrConductance / 80;
  Serial.print("Force in Newtons: ");
} else {
  fsrForce = fsrConductance - 1000;
  fsrForce /= 30;
  Serial.print("Force in Newtons: ");

Where does the /80 and -1000 then /30 come from ? Why is it a different operation and not just only different values ? I'm using the same FSR but with 3.3V. I have the same graph as this one : https://learn.adafruit.com/force-sensitive-resistor-fsr/overview#how-to-measure-force-slash-pressure-with-an-fsr

I would really appreciate clear and simple explanations. Thank you by advance !

  • Looking at the graph and assuming fsrConductance == Resistance on the graph, then if you say that the fsrConductance is 7000, according to the above you should get 200 Newtons force, but the graph says 100 so there is something not right. Is there something outside the sample of code that modifies fsrConductance? – Code Gorilla Jun 28 '17 at 10:19
  • I haven't changed fsrConductance, it's still fsrConductance == 1000000; like in the tutorial. It's in order to have our value in microOhms and conductance = 1 / resistance. – Marie Jun 28 '17 at 12:47
  • i do my projekt and i think i have the same Problem of you, i just want to ask you, did u get it the solve for Reading force from an FSR in Newtons ???? thanks – Master Arbeit Nov 7 '18 at 19:53

Sparkfun also sells FSR's and they explain it better: "Use them to sense if it’s being squeezed, but you may not want to use it as a scale".

On that Sparkfun page is also a datasheet. It's inaccuracy is 25%, and that is only when the force is applied evenly. When someone presses it with a finger, the inaccuracy is 50% or more.

The quick-and-dirty calculation in the Adafruit example is just for fun, it is not serious measuring the force in Newton.
There are two different calculations, for 'fsrConductance' above and below 1000. When it is above 1000, the 1000 offset is substracted to start the calculation at zero. The difference in calculation is that for one the value is divided by 80 and in the other divided by 30. It's just a rough calculation to get some kind of force value.

To measure weight or force, you need a load cell.

| improve this answer | |
  • Hmmm I see now, thank you, that explains a lot ! It sounds so easy and obvious written like this. – Marie Jun 28 '17 at 12:50

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.