I have this load cell a
- Rated Output / Sensitivity 2,0 mV/V
and thought it is a good idea to use a
ADS1115 as ADC (16bit)
so it is better than Arduino's internal 10bit. I thought the internal gain amplifier of the ADS1115 would be enough. But after reading this posting http://forums.adafruit.com/viewtopic.php?f=25&t=42455 I doubt that this is sufficient.
If the quoted sensitivity of 2mV/V refers to the output at the rated load, then if you power the sensor from 5V, you will get 0 to 10mV output. The maximum gain of the ADC is 16, so this can get boosted to 160mV. The resolution of the ADC is 4.096V/32768 which is 0.125mV. So you will be able to resolve the load cell output to 1 part in 1280, which gives you a little over 10 bits of usable resolution.
There are better ADCs for interfacing to load cells, for example ADS1231.
[EDIT: corrected figures]
24bit sound good, and "Internal Amplifier, Gain of 128" also, but 10mV x 128 is still only 1.28V but I can use the 3.3V as Reference, or? Hmm, my (a big Europe) dealer http://www.rs-components.com has the ADS1231 not in stock. Seems the ADS1232 is the same with two channels.
Now I ordered some ADS1231 and my question is: How should I wire the chip to the Arduino using the SPI lib
In the SPI lib I have:
MOSI, MISO, SCK, SS
On the ADS1231 I have, see page 16, http://www.ti.com/lit/ds/symlink/ads1231.pdf
DRDY/DOUT, SCLK, PDWN, SPEED
- I think SPEED can I set LOW what a data rate of 10SPS means.
- PDWN: This is NOT the same as SS (Slave Select)!!
PDWN: "holding this pin [PDWN] low powers down the entire converter"
But for SS: "When a device's Slave Select pin is low, it communicates with the master."
What pin is SS on the IC, or do I not need it?
- SCLK is SCK - the only thing that is clear and
- DRDY/DOUT is MISO is this the case, or? Do I need MOSI?
24bit sound good, and "Internal Amplifier, Gain of 128" also, but 10mV x 128 is still only 1.28V...
That's still ~22bits of precision.
Connect SPEED to GND. (doesn't need an input pin)
Connect PDWN to 5V. (again doesn't need an input pin)
DRDY goes to MISO (pin 12)
SCLK goes to SCK (pin 13)
There is no "slave select" for this chip. That also means it won't play nicely if you try to put anything else on the hardware SPI bus.
Thanks a lot, it works. I found really helpful code for the ADS1231 in this thread
Hi, old post I know - sorry! just wanting a bit more detail on your load cell to arduino project. I am trying to get my head around all the details, the 3 ADC chips I am looking at are INA125P, MCP3551 or yours ADS1231.. I am a complete novice - are these all effectively the same? can you make a recommendation on which to use? I am planning to use a load cell similarly rated to the one you have used Clemens.
Any help would be great. Thanks
The INA125P is an amplifier, capable of amplifying a signal up to 10,000x. It will work with a load cell but without an accompanying analog-to-digital converter (ADC) you'll be stuck with the Arduino's 10bits of precision (1024 measurement points).
The MCP3551 is an ADC converter with 22bits of precision (4,194,304 measurement points).
The ADS1231 is an amplifier (127x gain only) and a 24bit ADC.
So you could use the INA125P alone but you wouldn't have many measurement points. If you used the MCP3551 alone you'd have a lot of measurement points, but the signal would be small and you'd only use a fraction of them. So an INA125P and a MCP3551 together would work great, or you could use the ADS1231 and get (essentially) both in the same package.
The Chinese HX711 (check eBay/google) is comparable to the ADS1231. Since you can get it on a pre-built module (and cheap) it would be the easiest one to get started with.