Electronics-Related.com
Forums

Load Cell to Arduino

Started by RogerN March 3, 2012
"hrh1818"  wrote in message 
news:570389f1-b9f7-4223-9528-11cc9944706a@q18g2000yqh.googlegroups.com...

>Have you chosen a load cell yet? Have you found any that cost about >the same as an Arduino? >From what I have seen so far the AD7730 looks very promising. > >Howard
There are some low capacity load cells on eBay around $10 and up. I have a couple of low capacity load cells I bought through eBay a few years ago. From what I've been reading, the low price digital scales have load cells that should work the same. A person could buy a jewelry scale, kitchen scale or a bathroom scale and get a descent range of load cells. One of my intended uses is to make a hanging crane scale using a 10,000 lb. tension load cell. Also I have been successful at repairing damaged load cells if their reading is only a few millivolts too high, I can get bad load cells for free at work if I can get a scrap pass. RogerN
"Nico Coesel"  wrote in message news:4f52b148.3510317656@news.kpn.nl...

<snip>
>>Sure you can. Averaging will give more bits than there is hardware for. >>I >>played that game with Tektronix digitizers 35 years ago, to pull signals >>out >>of the digitization noise. The number of bits gained (assuming >>uncorrelated >>noise) is proportional to the log of the number of samples, so it gets >>boring >>fast, though. ;-) > >That only works if there is enough noise to flip at least the LSB bit. >If the signal sits somewhere between 2 codes you can oversample all >you want but you'll never get any extra bits of resolution. > >-- >Failure does not prove something is impossible, failure simply >indicates you are not using the right tools... >nico@nctdevpuntnl (punt=.) >--------------------------------------------------------------
Here's an idea I was curious about to increase A/D resolution. Lets say for example the LSB represented 1 millivolt. Could I use a resistor network (or DAC and voltage divider) to drop 1/4mV, 1/2mV, and 3/4mV. The idea would be to add these voltages to the load cell signal, read with 0mV offset, next read with 1/4mV offset, then 1/2mV offset... It would seem that averaging with offset voltages less than the LSB could get a higher resolution and hopefully with linear accuracy. Just wondering if that would work? The A/D I intend on using will probably be 24 bit so I'm not going to higher than that, but sure would be nice for the lower resolution load cells sometimes. I thought about using a DAC with a voltage divider to make a programmable offset voltage to divide the LSB. Offset 1/2 LSB, compare, offset 1/4 LSB, compare... till I find the fraction of the LSB where noise toggles it. So if I were to do this with the 10 bit Arduino ADC, offsetting 1/64LSB at a time over 64 readings, would the sum of the readings be (almost) as good as a 16 bit ADC? Don't know if it would be practical but sounds interesting and educational :-) RogerN
"RogerN" <regor@midwest.net> wrote:

>"Nico Coesel" wrote in message news:4f52b148.3510317656@news.kpn.nl... > ><snip> >>>Sure you can. Averaging will give more bits than there is hardware for. >>>I >>>played that game with Tektronix digitizers 35 years ago, to pull signals >>>out >>>of the digitization noise. The number of bits gained (assuming >>>uncorrelated >>>noise) is proportional to the log of the number of samples, so it gets >>>boring >>>fast, though. ;-) >> >>That only works if there is enough noise to flip at least the LSB bit. >>If the signal sits somewhere between 2 codes you can oversample all >>you want but you'll never get any extra bits of resolution. >> >>-- >>Failure does not prove something is impossible, failure simply >>indicates you are not using the right tools... >>nico@nctdevpuntnl (punt=.) >>-------------------------------------------------------------- > >Here's an idea I was curious about to increase A/D resolution. > >Lets say for example the LSB represented 1 millivolt. Could I use a >resistor network (or DAC and voltage divider) to drop 1/4mV, 1/2mV, and >3/4mV. The idea would be to add these voltages to the load cell signal, >read with 0mV offset, next read with 1/4mV offset, then 1/2mV offset... It
Google delta-sigma converter. -- Failure does not prove something is impossible, failure simply indicates you are not using the right tools... nico@nctdevpuntnl (punt=.) --------------------------------------------------------------
"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote:

>On Sun, 04 Mar 2012 00:11:07 GMT, nico@puntnl.niks (Nico Coesel) wrote: > >>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: >> >>>On Sat, 03 Mar 2012 23:37:43 GMT, nico@puntnl.niks (Nico Coesel) wrote: >>> >>>>"Martin Riddle" <martin_rid@verizon.net> wrote: >>>> >>>>> >>>>>"RogerN" <regor@midwest.net> wrote in message >>>>>news:XpadnaQ-Q5YXAc_SnZ2dnUVZ_s6dnZ2d@earthlink.com... >>>>>> >>>>>> "Tim Wescott" wrote in message >>>>>> news:qLmdnfK-LczQ68_SnZ2dnUVZ_hydnZ2d@web-ster.com... >>>>>> >>>>>>>On Sat, 03 Mar 2012 11:33:42 -0600, RogerN wrote: >>>>>>>> >>>>>>>><snip> >>>>>>> >>>>>>>Try doing some directed looking for applications notes showing how to >>>>>>>use >>>>>>>an ADC with a load cell. Hooking up the ADC to the Arduino is a >>>>>>>separate >>>>>>>problem which (hopefully) will be much more routine for you. >>>>>>> >>>>>>>-- >>>>>>>Tim Wescott >>>>>>>Control system and signal processing consulting >>>>>>>www.wescottdesign.com >>>>>>> >>>>>> >>>>>> Most of what I have seen is to run the load cell through an >>>>>> instrumentation amp then to the A/D. I have used the Arduino with a >>>>>> serial 12 bit A/D before, LTC1298 if I remember correctly. I'm >>>>>> wanting as high of resolution as practical, having found oversized >>>>>> >>>>> >>>>>Oversample a 16-bit ADC, acquisition time will be slow. But you can get >>>>>18 or 20 bits resolution if speed is not an issue. >>>> >>>>I doubt that. You can't get more bits out of an ADC. Its better to get >>>>rid of the noise in the analog domain and be able to use the full >>>>resolution. >>> >>>Sure you can. Averaging will give more bits than there is hardware for. I >>>played that game with Tektronix digitizers 35 years ago, to pull signals out >>>of the digitization noise. The number of bits gained (assuming uncorrelated >>>noise) is proportional to the log of the number of samples, so it gets boring >>>fast, though. ;-) >> >>That only works if there is enough noise to flip at least the LSB bit. >>If the signal sits somewhere between 2 codes you can oversample all >>you want but you'll never get any extra bits of resolution. > >Crunch all you want, we'll make more.
Show me how to get 8 bits resolution with ONE comparator... -- Failure does not prove something is impossible, failure simply indicates you are not using the right tools... nico@nctdevpuntnl (punt=.) --------------------------------------------------------------
On Sun, 04 Mar 2012 14:19:44 GMT, nico@puntnl.niks (Nico Coesel) wrote:

>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: > >>On Sun, 04 Mar 2012 00:11:07 GMT, nico@puntnl.niks (Nico Coesel) wrote: >> >>>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: >>> >>>>On Sat, 03 Mar 2012 23:37:43 GMT, nico@puntnl.niks (Nico Coesel) wrote: >>>> >>>>>"Martin Riddle" <martin_rid@verizon.net> wrote: >>>>> >>>>>> >>>>>>"RogerN" <regor@midwest.net> wrote in message >>>>>>news:XpadnaQ-Q5YXAc_SnZ2dnUVZ_s6dnZ2d@earthlink.com... >>>>>>> >>>>>>> "Tim Wescott" wrote in message >>>>>>> news:qLmdnfK-LczQ68_SnZ2dnUVZ_hydnZ2d@web-ster.com... >>>>>>> >>>>>>>>On Sat, 03 Mar 2012 11:33:42 -0600, RogerN wrote: >>>>>>>>> >>>>>>>>><snip> >>>>>>>> >>>>>>>>Try doing some directed looking for applications notes showing how to >>>>>>>>use >>>>>>>>an ADC with a load cell. Hooking up the ADC to the Arduino is a >>>>>>>>separate >>>>>>>>problem which (hopefully) will be much more routine for you. >>>>>>>> >>>>>>>>-- >>>>>>>>Tim Wescott >>>>>>>>Control system and signal processing consulting >>>>>>>>www.wescottdesign.com >>>>>>>> >>>>>>> >>>>>>> Most of what I have seen is to run the load cell through an >>>>>>> instrumentation amp then to the A/D. I have used the Arduino with a >>>>>>> serial 12 bit A/D before, LTC1298 if I remember correctly. I'm >>>>>>> wanting as high of resolution as practical, having found oversized >>>>>>> >>>>>> >>>>>>Oversample a 16-bit ADC, acquisition time will be slow. But you can get >>>>>>18 or 20 bits resolution if speed is not an issue. >>>>> >>>>>I doubt that. You can't get more bits out of an ADC. Its better to get >>>>>rid of the noise in the analog domain and be able to use the full >>>>>resolution. >>>> >>>>Sure you can. Averaging will give more bits than there is hardware for. I >>>>played that game with Tektronix digitizers 35 years ago, to pull signals out >>>>of the digitization noise. The number of bits gained (assuming uncorrelated >>>>noise) is proportional to the log of the number of samples, so it gets boring >>>>fast, though. ;-) >>> >>>That only works if there is enough noise to flip at least the LSB bit. >>>If the signal sits somewhere between 2 codes you can oversample all >>>you want but you'll never get any extra bits of resolution. >> >>Crunch all you want, we'll make more. > >Show me how to get 8 bits resolution with ONE comparator...
As long as the noise is uncorrelated with the signal, it's very easy. You've never seen a delta-sigma ADC? A successive approximation A/D only has one comparator. ;-)
RogerN wrote:
> > I'm interested in making a load cell scale using an Arduino so I can program > special features that currently available scales don't have. > > Any thoughts on best way to get high resolution data to an Arduino > microcontroller board? > > AD7730 chip, or Instrumentation amp to A/D converter? > > Anything readily available such as load cell in and serial data out? > > Most of the ready made load cell indicators I've been looking at have either > 20 bit or 24 bit A/D but only give 10,000 or so steps of resolution, I guess > because of noise? > > The features I want to be able to program in are things like reverse taring, > where you weigh a full container, select reverse tare, then empty the > container, and scale calculates tells how much product was removed, I think > this is also called loss of weight weighing or something like that. > > Another feature is I want to be able to calibrate with homemade calibration > weights. The idea is that I will come up with a weight heavy enough to > calibrate in the range I want, then take it to work and have it weighed on > an accurate calibrated scale, stamp the actual weight on it and it's good > enough for my purposes. So far I haven't seen a scale that will let you > calibrate with something like a 100.123 pound weight, for software it isn't > a problem. > > The best feature I want is to be able to add is using one scale for multiple > weighing platforms, having the calibration data stored in non-volatile > memory (eeprom, flash). This way I can use the scale display for reloading > scales or weighing machinery just by selecting the scale I'm currently > plugged into. > > Thought maybe some here may know of a good way to get load cell or strain > gage signals into a microcontroller like an Arduino.
http://www.analog.com/en/circuits-from-the-lab/CN0216/vc.html -- You can't have a sense of humor, if you have no sense.
On Sun, 04 Mar 2012 10:54:59 -0500, krw@att.bizzzzzzzzzzzz wrote:

> On Sun, 04 Mar 2012 14:19:44 GMT, nico@puntnl.niks (Nico Coesel) wrote: > >>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: >> >>>On Sun, 04 Mar 2012 00:11:07 GMT, nico@puntnl.niks (Nico Coesel) wrote: >>> >>>>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: >>>> >>>>>On Sat, 03 Mar 2012 23:37:43 GMT, nico@puntnl.niks (Nico Coesel) >>>>>wrote: >>>>> >>>>>>"Martin Riddle" <martin_rid@verizon.net> wrote: >>>>>> >>>>>> >>>>>>>"RogerN" <regor@midwest.net> wrote in message >>>>>>>news:XpadnaQ-Q5YXAc_SnZ2dnUVZ_s6dnZ2d@earthlink.com... >>>>>>>> >>>>>>>> "Tim Wescott" wrote in message >>>>>>>> news:qLmdnfK-LczQ68_SnZ2dnUVZ_hydnZ2d@web-ster.com... >>>>>>>> >>>>>>>>>On Sat, 03 Mar 2012 11:33:42 -0600, RogerN wrote: >>>>>>>>>> >>>>>>>>>><snip> >>>>>>>>> >>>>>>>>>Try doing some directed looking for applications notes showing >>>>>>>>>how to use >>>>>>>>>an ADC with a load cell. Hooking up the ADC to the Arduino is a >>>>>>>>>separate >>>>>>>>>problem which (hopefully) will be much more routine for you. >>>>>>>>> >>>>>>>>>-- >>>>>>>>>Tim Wescott >>>>>>>>>Control system and signal processing consulting >>>>>>>>>www.wescottdesign.com >>>>>>>>> >>>>>>>>> >>>>>>>> Most of what I have seen is to run the load cell through an >>>>>>>> instrumentation amp then to the A/D. I have used the Arduino >>>>>>>> with a serial 12 bit A/D before, LTC1298 if I remember correctly. >>>>>>>> I'm wanting as high of resolution as practical, having found >>>>>>>> oversized >>>>>>>> >>>>>>>> >>>>>>>Oversample a 16-bit ADC, acquisition time will be slow. But you can >>>>>>>get 18 or 20 bits resolution if speed is not an issue. >>>>>> >>>>>>I doubt that. You can't get more bits out of an ADC. Its better to >>>>>>get rid of the noise in the analog domain and be able to use the >>>>>>full resolution. >>>>> >>>>>Sure you can. Averaging will give more bits than there is hardware >>>>>for. I played that game with Tektronix digitizers 35 years ago, to >>>>>pull signals out of the digitization noise. The number of bits >>>>>gained (assuming uncorrelated noise) is proportional to the log of >>>>>the number of samples, so it gets boring fast, though. ;-) >>>> >>>>That only works if there is enough noise to flip at least the LSB bit. >>>>If the signal sits somewhere between 2 codes you can oversample all >>>>you want but you'll never get any extra bits of resolution. >>> >>>Crunch all you want, we'll make more. >> >>Show me how to get 8 bits resolution with ONE comparator... > > As long as the noise is uncorrelated with the signal, it's very easy. > > You've never seen a delta-sigma ADC? > > A successive approximation A/D only has one comparator. ;-)
Not to mention dual-slope ADCs. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
Tim Wescott <tim@seemywebsite.com> writes:

> On Sun, 04 Mar 2012 10:54:59 -0500, krw@att.bizzzzzzzzzzzz wrote: > >> On Sun, 04 Mar 2012 14:19:44 GMT, nico@puntnl.niks (Nico Coesel) wrote: >> >>>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: >>> >>>>On Sun, 04 Mar 2012 00:11:07 GMT, nico@puntnl.niks (Nico Coesel) wrote: >>>> >>>>>"krw@att.bizzzzzzzzzzzz" <krw@att.bizzzzzzzzzzzz> wrote: >>>>> >>>>>>On Sat, 03 Mar 2012 23:37:43 GMT, nico@puntnl.niks (Nico Coesel) >>>>>>wrote: >>>>>> >>>>>>>"Martin Riddle" <martin_rid@verizon.net> wrote: >>>>>>> >>>>>>> >>>>>>>>"RogerN" <regor@midwest.net> wrote in message >>>>>>>>news:XpadnaQ-Q5YXAc_SnZ2dnUVZ_s6dnZ2d@earthlink.com... >>>>>>>>> >>>>>>>>> "Tim Wescott" wrote in message >>>>>>>>> news:qLmdnfK-LczQ68_SnZ2dnUVZ_hydnZ2d@web-ster.com... >>>>>>>>> >>>>>>>>>>On Sat, 03 Mar 2012 11:33:42 -0600, RogerN wrote: >>>>>>>>>>> >>>>>>>>>>><snip> >>>>>>>>>> >>>>>>>>>>Try doing some directed looking for applications notes showing >>>>>>>>>>how to use >>>>>>>>>>an ADC with a load cell. Hooking up the ADC to the Arduino is a >>>>>>>>>>separate >>>>>>>>>>problem which (hopefully) will be much more routine for you. >>>>>>>>>> >>>>>>>>>>-- >>>>>>>>>>Tim Wescott >>>>>>>>>>Control system and signal processing consulting >>>>>>>>>>www.wescottdesign.com >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Most of what I have seen is to run the load cell through an >>>>>>>>> instrumentation amp then to the A/D. I have used the Arduino >>>>>>>>> with a serial 12 bit A/D before, LTC1298 if I remember correctly. >>>>>>>>> I'm wanting as high of resolution as practical, having found >>>>>>>>> oversized >>>>>>>>> >>>>>>>>> >>>>>>>>Oversample a 16-bit ADC, acquisition time will be slow. But you can >>>>>>>>get 18 or 20 bits resolution if speed is not an issue. >>>>>>> >>>>>>>I doubt that. You can't get more bits out of an ADC. Its better to >>>>>>>get rid of the noise in the analog domain and be able to use the >>>>>>>full resolution. >>>>>> >>>>>>Sure you can. Averaging will give more bits than there is hardware >>>>>>for. I played that game with Tektronix digitizers 35 years ago, to >>>>>>pull signals out of the digitization noise. The number of bits >>>>>>gained (assuming uncorrelated noise) is proportional to the log of >>>>>>the number of samples, so it gets boring fast, though. ;-) >>>>> >>>>>That only works if there is enough noise to flip at least the LSB bit. >>>>>If the signal sits somewhere between 2 codes you can oversample all >>>>>you want but you'll never get any extra bits of resolution. >>>> >>>>Crunch all you want, we'll make more. >>> >>>Show me how to get 8 bits resolution with ONE comparator... >> >> As long as the noise is uncorrelated with the signal, it's very easy. >> >> You've never seen a delta-sigma ADC? >> >> A successive approximation A/D only has one comparator. ;-) > > Not to mention dual-slope ADCs.
I'll see your two slopes and raise you multiple slopes. The HP3458A, and indeed most high-end meters, uses a multislope technique to get accuracy equivalent to that of a 28 bit ADC. From a single comparator of course! :) -- John Devereux
On 2012-03-04, RogerN <regor@midwest.net> wrote:
> "Nico Coesel" wrote in message news:4f52b148.3510317656@news.kpn.nl... > ><snip> >>>Sure you can. Averaging will give more bits than there is hardware for. >>>I >>>played that game with Tektronix digitizers 35 years ago, to pull signals >>>out >>>of the digitization noise. The number of bits gained (assuming >>>uncorrelated >>>noise) is proportional to the log of the number of samples, so it gets >>>boring >>>fast, though. ;-) >> >>That only works if there is enough noise to flip at least the LSB bit. >>If the signal sits somewhere between 2 codes you can oversample all >>you want but you'll never get any extra bits of resolution. >> >>-- >>Failure does not prove something is impossible, failure simply >>indicates you are not using the right tools... >>nico@nctdevpuntnl (punt=.) >>-------------------------------------------------------------- > > Here's an idea I was curious about to increase A/D resolution. > > Lets say for example the LSB represented 1 millivolt. Could I use a > resistor network (or DAC and voltage divider) to drop 1/4mV, 1/2mV, and > 3/4mV. The idea would be to add these voltages to the load cell signal,
another approach is just to add noise, and average it out.
> read with 0mV offset, next read with 1/4mV offset, then 1/2mV offset... It > would seem that averaging with offset voltages less than the LSB could get a > higher resolution and hopefully with linear accuracy. Just wondering if > that would work?
> The A/D I intend on using will probably be 24 bit so I'm > not going to higher than that, but sure would be nice for the lower > resolution load cells sometimes.
24 bits is over 7 significant figures, seems like bucketloads.
> I thought about using a DAC with a voltage > divider to make a programmable offset voltage to divide the LSB. Offset 1/2 > LSB, compare, offset 1/4 LSB, compare... till I find the fraction of the LSB > where noise toggles it.
> So if I were to do this with the 10 bit Arduino ADC, offsetting 1/64LSB at > a time over 64 readings, would the sum of the readings be (almost) as good > as a 16 bit ADC?
yeah, if done right, probably. a 5 stage R-2r ladder should be linear enough. sigma-delta is a another A/D scheme with fewer "moving parts", a single comparitor, a capacitor, a resistor, a d-type latch, a clock and a couple of counters. if you want to play with ADCs it's probably a good place to start. -- &#9858;&#9859; 100% natural
Thanks all for the info, I'm learning interesting things!

I have an AD7730 on my solderless breadboard right now planning to test out 
after I come up with a 4.9152Mhz clock source.  I expect a lot of noise on 
the breadboard but it's a start.

Another Idea I had is using auto ranging like a voltmeter and windowing like 
an expanded scale voltmeter.  I guess this would be something like having a 
lower resolution ADC set for example a 1mV range and changing that 1mV 
window perhaps using an DAC.  Or what about a digital pot to set the gain of 
the instrumentation amp for auto ranging?

RogerN