I want to make a scale using Arduino. I have 4 load cells, from SparkFun, http://www.sparkfun.com/products/10245, and 2 AD620 instrumentation amps. I am using +5 VDC to +Vs and -5 VDC to -Vs. I also am grounding REF. Rg is 28 ohms, giving a gain of about 1765 (this value has been changing as I play). Then, using +5 VDC, I send +5 to the white of one sensor and gnd to the black. The other sensor is reversed, sending +5 to the black and gnd to the white. This, i believe, creates a full Wheatstone bridge. The first sensors red lead goes to -in, the second to +in. I then put 1 Kohm resistor and 1 uF cap in series from the output to ground (caps negative to the ground) and read from after the resistor to my Arduino Uno. The last step was for smoothing the output. OK, with one AD620 running and setting cinder blocks on the two sensors with a puck for the third (3 points to sit on) I get some values on my LCD display. Questions:

1.) Connected correctly?2.) The values are not always the same when applying the same weight. I try to set the blocks on the same place every time. What would cause the different values?3.) My application will have about 160 lbs on the scale initially and that weight will decrease over a period of time, about a month (Keg!). Will a scale like this keep a steady measurement without major changes over time? Any help appreciated.

I already take 30 readings and average them before outputting the data. I didn't think that I needed to play with AREF if I use 5 VDC. Does it help to specify it in programming? Also, as stated above, I am using a low pass filter to help smooth the output. Yours seems to be of the software variety (cool!). Should I use yours instead of or in addition to?

I already take 30 readings and average them before outputting the data. I didn't think that I needed to play with AREF if I use 5 VDC. Does it help to specify it in programming? Also, as stated above, I am using a low pass filter to help smooth the output. Yours seems to be of the software variety (cool!). Should I use yours instead of or in addition to?

The sketch is available if interested.

Thanks!

The Arduino A/D already uses the boards +5vdc as it''s A/D reference through the Avcc pin, so no advantage to wiring it via the Aref pin. However keep in mind that long term accuracy will only be as good as the boards +5vdc power, and any drift in voltage value over time because of change of temperature or whatever, will have a proportional effect on the measurement's accuracy. That is the reason that high quality lab type A/D converters utilize special reference voltage source components. Arduino's 10 bit A/D conversion hardware does not match the capablilites of high quality strain gages and load cells. AVR's total worst case accuracy spec for the A/D is +/- 2 bits, that's a pretty poor specification. The Arduino A/D function is a very useful feature, but shouldn't be considered a high quality solution.

I'm using a transformer to a 7805 regulator to power the circuit, the arduino itself gets power currently from the USB, but will get it from the regulator when I get the networking code done. So power fluctuating shouldn't be an issue. I am concerned with your claim of +/- 1 or 2 bits. That is HUGE. I wanted to avoid and external ADC, but if you are correct, I may have no choice.

I'm using a transformer to a 7805 regulator to power the circuit, the arduino itself gets power currently from the USB, but will get it from the regulator when I get the networking code done. So power fluctuating shouldn't be an issue. I am concerned with your claim of +/- 1 or 2 bits. That is HUGE. I wanted to avoid and external ADC, but if you are correct, I may have no choice.

Also note that if one is using the internal 1.1vdc band-gap reference that the actual voltage value will vary some from chip to chip up to a maximum of +/- 10% and your sketch should include some form of 'offset' correction constant so that A/D calibration can be improved.