Does anyone have any experience with FlexiForce Pressure sensors?

I am using one for my project, and I realized that it does not spit out linear values in the serial monitor.

For example, a weight of 1 pound may read as 256, 2 pounds at 459 and 70 pounds at 879 on the 1023 scale (this is for the 100 pound sensor)

This is my current code to map it down to 0-100 values

int pressure = analogRead(A0);
pressure = map(pressure,0,1023,0,100);
Serial.println("Pressure Reading: ");
Serial.println(pressure);

Is there a way to make it so that 1 pound = a readout of 1 with this sensor? How does calibration work?Thanks.

You may need to resort to a lookup table of known pairs of voltage vs load and assume some linearity between those points. Have a dig around in the Playground, there are some examples there (but not sure if they're for load sensors; principles will be the same of course).

Voltage vs force (not "pressure") should be fairly linear, so if those values you gave are real, could be you are not properly applying your load to the sensor (with a puck), or there's a problem w your wiring. You should be able to measure the resistance of the sensor with a multimeter (at various loads) and also the voltage. If you are getting linear voltage response and reasonable values, then it's time to move to the arduino and calibration.

Did you see this?

The resistance is not linear, although it has two sort-of-linear zones. They show a linear output using their “recommended drive circuit”.

The conductance, and therefore the voltage response, is linear, +/- some percent. Or so they say. I've just used mine to sense changes in force (and haven't particularly been interested in "accuracy.")

The OP should post his circuit. I would be surprised if it is the recommended one. I set mine up using a simple resistor divider and it worked fine for my purposes.

Values aren't real but they're approximate. I didn't use the recommended one, dave, you're right. I've tried converting to voltage but that doesn't seem to work either. Am I doing this wrong?

I'll post my circuit if you still need it

int pressure = analogRead(A0); pressure = map(pressure,0,1023,0,100); float voltage = pressure * (5.0 / 1023.0); Serial.println("Pressure Reading: "); Serial.println(voltage);

If you can’t figure out what is going wrong by using a multimeter, then it’s to early to be working with the Arduino.

DaveEvans:
Voltage vs force (not “pressure”) should be fairly linear, so if those values you gave are real, could be you are not properly applying your load to the sensor (with a puck), or there’s a problem w your wiring. You should be able to measure the resistance of the sensor with a multimeter (at various loads) and also the voltage. If you are getting linear voltage response and reasonable values, only then is it time to move to the arduino and calibration.

If you are using a simple resistor divider, as I suspect, then you should be able to simply measure the resistances and voltages at various load and figure out whether the output voltage (measured by the Arduino) is what should be expected (using Ohm’s Law). If you plot the results using Excel or on graph paper, you should see whether they are linear. Once you have that information, the rest should be a lot easier.

What? No that's not what I meant...I don't have a multimeter on hand to do what you asked, but how would I be able to detect voltages and print them linearly?

I don't want to have a MM as part of my project.

I am new at arduino, sorry.

If you don’t have a MM, you should buy one, or borrow one, and learn how to use it.

It’s not to be “part of your project” - it’s a basic electronics tool that you use for testing purposes to help you understand what is going on with the sensor and your circuit, before you hook the sensor up to the Arduino (or while it is hooked to the Arduino.)

I have access to one and know how to use it, I'm just wondering how I can get readouts on serial monitor/LCD screen with linear values.

Cross-posted. http://forum.arduino.cc/index.php?topic=314331

Thread locked.