Force sensor using with 3.3 v


#1


These 2 products are used for kind of weight scaling , The FSR is bit unreliable but i dont need so much accurancy .
Question is :

1-The fsr is analogue and all the exemple used are with 5v but the analogue pins in the spark core are 3.3v and in the description of the fsr they say it works with 3.3v
But i dont know what amount of OHM resistor i use to keep the fsr below 3.3v . in all exemples they use 10k so it goes up to 5v.

2- Load sensor works good with 3.3v anyone have experience with that ?


#2

Hi @Gentmat

Did you see this tutorial I did on using the FSR to sense a coffee pot?

I used a 1k resistor with the sensor in the Maker kit and that gave me a good range. You are not going to get an accurate scale with one of these but you can detect changes and I was easily able to a full coffee pot from an empty one.

The load sensor is a different animal so an instrumentation amp (a kind of op-amp) is pretty much required.


#3

More than helpful ! Thank you so much for such example and real explanation .
I need to understand 1 more thing please from you :

1- What is the max kg scale with such 1 k Resistor … Is it max 1 kg ? or it can scale up to 10 k

2- Can i power the spark core from a power bank 5v to the usb plug and not throw soldering vin pin.

3- Anyway im not understanding why would someone power up the spark core via VIN pin and not the normal USB cable ( Can you explain that to me please )
Thank you so mucchhhhhhhh


#4

Hi @Gentmat

With the smaller sensor in the Maker kit, the datasheet says 10g to 1kg but I think you could get a reading with 2-3 kg. At some point, the resistance gets very small and things become hard to measure. Hook the sensor up to an ohm meter and measure its resistance under loads if you have questions. I did not weigh it, but I think my full coffee pot and coffer maker weighs something like 3 kg, but I am only sensing about 1/4 of the weight due the sensor placement.

A resistor in the range 1k to 10k will not be a problem for the core ADC, you can change this resistor to scale your ADC readings to be in the range you want.

You can power the core from the USB connector with +5V over USB. Or you can power the core from a separate 5V supply that does not have a USB connector by putting +5V on the Vin pin. A good use case the Vin pin would a battery (6V nominal) that is not a regulated USB supply. I have also used old cell phone chargers that had non-USB connectors to power the core–I just snipped off the only connector and connected +5V to Vin and GND to GND. Another good example is driving multiple servos. My USB power supply can drive one servo OK, but two or more and it cannot supply enough current. So an external +5V supply at several amps might be required.


#5

A resistor in the range 1k to 10k will not be a problem for the core ADC, you can change this resistor to scale your ADC readings to be in the range you want.

Of what i understood you used 1k resistor to keep the voltage below 3.3v . so how could i increase resistor if i dont have more than 3.3v. i dont want to supply 5v from external power


#6

Hi @Gentmat

For the FSR, you are building a resistor voltage divider.

                    1k              FSR
+3.3V* -------/\/\/\/------+------/\/\/\/\-------- GND
                           |
                       ADC Input

As the pressure increases on the FSR, its resistance is lowered and the voltage at the analog input decreases, so it works “upside-down”. So with this circuit, a heavy pressure has a lower reading than a light pressure.

You can try swapping the resistor and the FSR around and see what you like.


#7

you mean i can use 1k or 2 k or 10 k as i wish . any resistor ? no limit and i compare the voltage ? sorry i thought we used 1k to insure that its 3.3 v not going more.


#8

So you will see above that I used the filtered 3.3V supply available on the 3v3* pin of the core. That way I never get above 3.3V at the input.


#9

Im sorry im Arab so my english sucks a bit .
My question is the following ( I am a hardware noob ) :
Why did we use 1k resistor and not 10k resistor … What would be the difference if i used more than 1 k .


#10

Hi @Gentmat

Your english is fine–don’t worry! You can use any value that makes the measurements in the range you want to measure, upto a limit imposed by the input impedance of the analog to digital converter on the core (around 40k min).

Let’s say you measure your FSR and you know it ranges from 10k ohm under the lightest load to around 500 ohms under the heaviest load.

With a 1k fixed resistor we would have

Light load: 3.3/(1000+10000) = 0.3mA so the resistors would have 10000.3mA = 0.3V and 100000.3mA = 3.0V across them. The ADC divides 0 to 3.3V in 4095 steps or 0.80586 mV/step, so the reading could 3728 or 372 depending on which resistor was on the top or bottom.

Heavy load: 3.3(1000+500) = 2.2mA so we would have 2.2V and 1.1V across the two resistors and the readings would be 2730 and 1330 depending.

So our span of values from light to heavy is about 1000 ADC steps in the range we are interested in.

Now lets do the same math for a 10k fixed resistor:

Light load: 3.3(10k+10k) = 0.165mA and we would have 1.65 V across both the fixed and FSR resistors. This would mean an ADC reading of 2048 no matter which one was up or down since they are the same value at the load.

Heavy load: 3.3(10k+500) = 0.3143mA and 3.1429V on the 10k and 0.1571V on the FSR. The values would be 3900 or 195 depending on which one was on top.

So the span from light to heavy is now about 1800 ADC steps and we have more potential resolution.

So you can divide the FSR range into 1000 steps or 1800 steps. My experience with these is that more steps is not always better since the repeatability of the device with a given load is somewhat limited. But now you know how to figure it out, I hope!


#11

kind of got it. higher resistor = higher steps. by theory higher steps = higher accurancy (more accurate) . practicly it is not the case with what we are doing here . thats what i understood … hehe
Thanks really you are great in teaching but im a bad student .
by the way i checked your webpage result ajax fetch … you was using spark.publish … and refresh the ajax manually. from 3 days ago the spark.subscribe() is available will that fix the refresh thing to auto refresh :slight_smile:


#12

Hi, I’m a real electronics newbie but I’ll ask. What about using a 4.7k resistor? I just finished the temperature sensor that uses a 4.7k (its already in the breadboard). So I was thinking of just using the 4.7k. I have the SEN-09673 FSR (small)
Hope that’s not too dumb of a question. If it is just tell me and I’ll delete this post.


#13

Hi @dcarl661

I would just try it!

All of the math to optimize the results is just to get the most range out of the sensor. That sensor is around 2.5kohm when fully loaded so 4.7k should work fine.


#14

I did and it worked. I do think the range was affected but its still good enough for detecting pressure.
Thanks.