0
\$\begingroup\$

I am currently working on a project, which involves measuring current in a DC circuit and storing that generated data on an arduino microcontroller. I decided to go with the ADS1115 and a shunt, which is located in series on the low-side of the circuit I want to measure. It is a 0.001Ω shunt, which results in a voltage drop of 1mV per amp.

I have attached a schematics of the wiring (Note that there are multiple other devices connected in parallel on the arduino, which all have very little power consumption; I left them out for better reading)

circuit showing the wiring

The issue I'm having are the results the ADS1115 is giving me: When no voltage is applied to the left circuit, i get a single-ended reading of about -20, which in my application is unacceptable. When voltage is applied and the load draws current, i also get a reading, which is -20 bits off.

The ADS1115's supply voltage is around 4.98V and I am not sure if the problem lies in all the other components that are attached to the arduino's circuit.

I am not an electrical engineer but a software developer, so please take that into consideration when commenting on my schematics and/or wrong wiring. :)

Any help is appreciated!

| improve this question | | | | |
\$\endgroup\$
  • \$\begingroup\$ I have a couple of questions: What kind of load are you using? What values are you expecting? What exactly do you mean by "i also get a reading, which is -20 bits off."? \$\endgroup\$ – jonathanjo Jan 14 at 21:33
  • \$\begingroup\$ You have not mentioned anything how you have configures the chip. What is the input mux configuration, PGA settings, data rate selection etc? Are you even sure you use single-ended conversions? \$\endgroup\$ – Justme Jan 14 at 21:36
  • \$\begingroup\$ Are you saying you have a 20 count offset (error), no matter what voltage you are trying read? (I aasume you mean count, or quanta, and not 20 bits). \$\endgroup\$ – SteveSh Jan 14 at 21:38
  • \$\begingroup\$ Are you sure the measurements are actually not wrong? If there is supply return currents flowing, it might actually be that resistor is at lower potential by some amount than ADS1115 ground pin is. How much in volts the -20 counts is? \$\endgroup\$ – Justme Jan 14 at 21:43
  • \$\begingroup\$ @Justme I am using the Adafruit_ADS1115 Library, which lets me do something like "readSingleEnded(0)", with 0 being the channel. PGA is set to 16x. Data Rate Selection is set to default = 128 samples/second. \$\endgroup\$ – storm85049 Jan 14 at 21:47
2
\$\begingroup\$

Unlike other devices in ADS111x series, ADS1115 includes source MUX that selects which of the input channels will be used as inputs for differential amplifier.

Since you are measuring shunt voltage referenced to the ground, you have to select GND as one of those inputs. See "9.3.1 Multiplexer" diagram in the datasheet. This is done by setting bits 14:12 in the Config Register to 0b100 (for A0 input).

Also, many ADC chips have "zero offset", which can be accounted for by calibration. I don't know if that is the case with this particular chip.

| improve this answer | | | | |
\$\endgroup\$
0
\$\begingroup\$

Okay, so thanks to @Maple, i got it working!

The wiring was almost correct, one thing i had to add was another connection from the ADS's ground to its A3 Pin and configure the register just like @Maple suggested.

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ just to clarify: the connection to A3 pin should not have been necessary. By setting config register bits 14:12 to 0b100 you instructing MUX to connect AINn to the ground internally. See Table 8 in datasheet for details. \$\endgroup\$ – Maple Jan 18 at 7:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.