Force Sensitive Resistors

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
e-noob
 
Posts: 11
Joined: Thu Jan 30, 2014 3:29 am

Force Sensitive Resistors

Post by e-noob »

Hello,

I am trying to implement a weight scale using these sensors (option 1 or option 2).

However, the sensing area is too small for what I want to weight. The manual does offer the advice
If the footprint of the applied load is larger than the sensing area, it may be necessary to use a "puck." A puck is a piece of rigid material (smaller than the sensing area) that is placed on the sensing area to ensure that the entire load path goes through this area. The puck must not touch any of the edges of the sensing area, or these edges may support some of the load and give an erroneous reading.
So my understanding of the puck is that it elevates the load slightly to ensure nothing is supporting the load and the weight travels entirely to the sensing area. The sensing area is only 0.375” in diameter, so I'm wondering if there is a way to build a puck that can support a load that is arbitrarily big (perhaps 1 foot radius max)?

And I'm also wondering what the puck should be made of and how to attach the puck to the sensing area. The manual warns against shear forces and adhesive that could damage the sensing area material. I was thinking of just using a very short metal cylinder/disc and an adhesive like gorilla glue to glue the cylinder/disc to the sensing area. Would that be okay?

Thank you for any help or advice!

User avatar
adafruit_support_bill
 
Posts: 88139
Joined: Sat Feb 07, 2009 10:11 am

Re: Force Sensitive Resistors

Post by adafruit_support_bill »

I would not try to build a puck that large for a single sensor. The probability of off-axis loading would affect the accuracy of your readings and increase the possibility of damage to the sensor. A better approach would be to distribute the load across multiple sensors placed around the periphery of the weighing platform. Then calculate the weight based on the average reading from all the sensors.

Please note that this type of sensor is not very good for precision weight measurement. Strain gauges are much more precise and repeatable.

User avatar
zener
 
Posts: 4567
Joined: Sat Feb 21, 2009 2:38 am

Re: Force Sensitive Resistors

Post by zener »

adafruit_support_bill wrote:Please note that this type of sensor is not very good for precision weight measurement. Strain gauges are much more precise and repeatable.
x2. I don't think you will be very happy with the results you will get using these in this application. In my experience the repeatability is not very good. However, if you already have them, and you don't need great accuracy then you could give it a try and see if it is good enough.

User avatar
e-noob
 
Posts: 11
Joined: Thu Jan 30, 2014 3:29 am

Re: Force Sensitive Resistors

Post by e-noob »

adafruit_support_bill wrote:I would not try to build a puck that large for a single sensor. The probability of off-axis loading would affect the accuracy of your readings and increase the possibility of damage to the sensor. A better approach would be to distribute the load across multiple sensors placed around the periphery of the weighing platform. Then calculate the weight based on the average reading from all the sensors.

Please note that this type of sensor is not very good for precision weight measurement. Strain gauges are much more precise and repeatable.
I do have some margin for error, so I thought I would try these sensors first. I do get what you're saying about using multiple sensors and taking an average, but I'm having trouble imagining how to actually arrange it.

Here's what I think you're saying
Image

Do you mean I could put a block of wood right in the middle where no sensor completely fits the block on its sensing area, but fits within the area of all 4 sensors arranged like above. Then I find each sensors individual resistor reading and sum them up?

And when you say weighing platform, are you talking about the sensing area of the each sensor? Because I'm trying to imagine a way I could lay multiple sensors under, say a wide thin plate, place the load on the plate, and then calculate the weight by averaging all the sensor measurements.

I also did think of using strain gauges in a Wheatstone circuit initially but was told sensors would be much easier and cheaper.

User avatar
adafruit_support_bill
 
Posts: 88139
Joined: Sat Feb 07, 2009 10:11 am

Re: Force Sensitive Resistors

Post by adafruit_support_bill »

Do you mean I could put a block of wood right in the middle where no sensor completely fits the block on its sensing area, but fits within the area of all 4 sensors arranged like above.
No. Each sensor should be completely under the platform.
And when you say weighing platform, are you talking about the sensing area of the each sensor? Because I'm trying to imagine a way I could lay multiple sensors under, say a wide thin plate, place the load on the plate, and then calculate the weight by averaging all the sensor measurements.
You were talking about loads up to 1 foot in diameter. To do that, I would make a platform (e.g. a slab of plywood) 1 foot square. Then mount one sensor under each corner. That way, no matter how the load is placed on the platform, each sensor will see some fraction of the load. The sum of the load seen by all the sensors will be equal to the total load.

Whether you use the sum or the average of the 4 readings is not really important. The output of these sensors is not in any unit of weight. It is simply a resistance that changes with the applies force. What you are building is a composite sensor that will need to be calibrated against some known weights to produce meaningful output.

User avatar
e-noob
 
Posts: 11
Joined: Thu Jan 30, 2014 3:29 am

Re: Force Sensitive Resistors

Post by e-noob »

adafruit_support_bill wrote:
Do you mean I could put a block of wood right in the middle where no sensor completely fits the block on its sensing area, but fits within the area of all 4 sensors arranged like above.
No. Each sensor should be completely under the platform.
And when you say weighing platform, are you talking about the sensing area of the each sensor? Because I'm trying to imagine a way I could lay multiple sensors under, say a wide thin plate, place the load on the plate, and then calculate the weight by averaging all the sensor measurements.
You were talking about loads up to 1 foot in diameter. To do that, I would make a platform (e.g. a slab of plywood) 1 foot square. Then mount one sensor under each corner. That way, no matter how the load is placed on the platform, each sensor will see some fraction of the load. The sum of the load seen by all the sensors will be equal to the total load.

Whether you use the sum or the average of the 4 readings is not really important. The output of these sensors is not in any unit of weight. It is simply a resistance that changes with the applies force. What you are building is a composite sensor that will need to be calibrated against some known weights to produce meaningful output.
Excellent idea, exactly what I need! Now I'm guessing I'd need rubber stopper glued between the sensing area and the plywood to reduce any friction or movement between the two.

The reason I am wondering how to determine the weight from the readings is that this datasheet (pg. 5) does show a relation between resistance and weight. So if I am using 4 sensors with 4 readings, I am not certain how to relate them to obtain the weight. But I will try using known loads and seeing what I read from the sensors.

Thank you!

Edit: Lastly, just wondering if each sensor says it supports up to ~2lbs, I still shouldn't load anything more than 2lbs if I have 4 sensors sharing a load?

User avatar
adafruit_support_bill
 
Posts: 88139
Joined: Sat Feb 07, 2009 10:11 am

Re: Force Sensitive Resistors

Post by adafruit_support_bill »

this datasheet (pg. 5) does show a relation between resistance and weight.
It does, but it also describes very specific test conditions used to produce that data.
A stainless steel actuator with a 0.4” [10.0 mm] diameter hemispherical tip of 60 durometer
polyurethane rubber was used to actuate the FSR device.
The response curve will be different with different materials and geometries in contact with the sensor. That is why you will need to calibrate the whole assembly.
each sensor says it supports up to ~2lbs, I still shouldn't load anything more than 2lbs if I have 4 sensors sharing a load?
The data sheet says 20 newtons, which is about 4.5 pounds. http://www.adafruit.com/datasheets/FSR400Series_PD.pdf
Assuming 4 sensors at the corners of a square platform: If your load is perfectly centered on the platform, each sensor will see 1/4 of the load, so the total could be as much as 4x20 or 80 newtons (~18 lbs). Going over that a bit will not damage the sensor, the readings will just max-out.

User avatar
anayaphoto
 
Posts: 5
Joined: Mon Feb 17, 2014 11:08 pm

Re: Force Sensitive Resistors

Post by anayaphoto »

Hi,

I am making almost the exact same device. My problem is making the connection to the inputs. I hooked up the FSR just like you guys have in the tutorial and that works great, but when I try to add more, the ones on different inputs won't give readings. I finally got 2 working on different grounds on the Arduino, but I need for FSR's. On your sample projects it shows a guy with 5 of them hooked up for his fingers, is there a wiring diagram for something like that?

Thanks,

Jason

User avatar
adafruit_support_bill
 
Posts: 88139
Joined: Sat Feb 07, 2009 10:11 am

Re: Force Sensitive Resistors

Post by adafruit_support_bill »

You have to replicate the entire circuit for each FSR on a different analog pin.

Connect one leg to 5v.
Connect the other leg to an analog pin.
Also connect from that same leg to ground via a 10Kohm resistor.

If you still have trouble, post a photo of your circuit and the code you are using.

User avatar
nsykes91187
 
Posts: 2
Joined: Tue Nov 25, 2014 1:05 am

Re: Force Sensitive Resistors

Post by nsykes91187 »

Does anyone know how implement a code that would signal an output such as an LED when a certain resistance or weight was triggered?

User avatar
adafruit_support_bill
 
Posts: 88139
Joined: Sat Feb 07, 2009 10:11 am

Re: Force Sensitive Resistors

Post by adafruit_support_bill »

Code: Select all

if (analogRead(sensorPin) < weightThreshold)
{
    digitalWrite(ledPin, HIGH);
}
else
{
    digitalWrite(ledPin, LOW);
}

User avatar
nsykes91187
 
Posts: 2
Joined: Tue Nov 25, 2014 1:05 am

Re: Force Sensitive Resistors

Post by nsykes91187 »

Thanks, but also how do I program it to where it goes high at a certain value? I have to give it a value to go high from. Like for example at a certain resistance or at the numbers 0-255?

User avatar
adafruit_support_bill
 
Posts: 88139
Joined: Sat Feb 07, 2009 10:11 am

Re: Force Sensitive Resistors

Post by adafruit_support_bill »

That is what the 'weightThreshold' variable is. The FSR response will depend on the design of your system. You will have to calibrate the system once you build it and determine the exact threshold value experimentally.

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”