Using ADS 10115 and Micro Current Gold. - Page 1
Forum section: electronics / beginners

author: andymouse
author_rank: Contributor
timestamp: January 27, 2020, 11:08:00 am
content: Hi,I have an ADS1015 ADC connected to an Arduino Uno and it is powered from the Arduino 5v supply, I am using the Arduino 3.3v and a potential divide to give me a 55 mV and have the sample sketch set to gain sixteen and I have an accurate value on the serial monitor that varies by 1 count every now and then. I also have a 3v battery with a 50M ohm resistor connected to a Microcurrent Gold which gives me 58.8 millivolts (58.8 milliamps) on my fluke 79 series 2 multimeter that is rock steady. However if I connect the microcurrent to the ADC the readout is unstable varying by 10 to fifteen millivolts, the only thing that I am unable to change is the samples per second, so not sure if this needs adjusting, and I can't understand because both sources are fine on my fluke but only one is ok with the ADC. Any thoughts please ?Andy

author: iMo
author_rank: Super Contributor
timestamp: January 27, 2020, 11:27:36 am
content: Quote from: andymouse on January 27, 2020, 11:08:00 amDo you mean 58.8nA?Try to run Arduino+ADC+notebook on batteries (not USB or wall adapter powered) - the same setup as with the Fluke..

author: andymouse
author_rank: Contributor
timestamp: January 29, 2020, 02:28:47 pm
content: Hi,Firstly, sorry yes nA.I thought this would be it, sadly not.I set up the ADC to measure a differential input and ran the uno of a battery and displayed the output on an LCD display and really expected this to work, however the result was also jumping around by a few counts, but again is steady on my Fluke, so I am at a loss, however my ADC itself does not appear to work fully, as A0 is showing full scale all the time but the other 3 inputs are fine so I guess the first thing to do is get a new ADC but I don't feel that's the problem as the "noise" only seems to appear on the microcurrent and not anything else connected to the ADC. I don't have access to a scope at the moment so its difficult to move on. Do you have any thoughts ? and what would you check with a scope? what part (if any!) of the microcurrent should I even suspect, if I hadn't tried to make a seperate display I would not have noticed this...cheers.

author: andymouse
author_rank: Contributor
timestamp: January 29, 2020, 04:01:26 pm
content: Hi,I just had a thought.I was asking myself what was the difference between the Fluke and the ADC ? because the Fluke worked ok and the ADC didn't, there is a difference between impedance, could this be the problem that the Fluke is high impedance input and the ADC isn't, or am I barking up the wrong tree ?

author: Kleinstein
author_rank: Super Contributor
timestamp: January 29, 2020, 04:41:17 pm
content: The Fluke DMM like most DMMs reads the signal over a multiple of the power line cycle. This gives very good suppression of 50/100 Hz residual present in the signal. For the external ADC is depends on the settings which integration time is used. If set to the US 60 Hz this could give poor mains hum suppression and one could see a beat frequency.It could also be a problem with the reference. If the divided 3.3 V signal is very stable this makes me suspect that for some reason the ADC could use the 3.3 V supply as reference. This would be good for the divider, but bad for any external voltage if the 3.3 V are not stable.The µCurrent, especially some versions don't like a capacitive loadAnother possible trouble could be supply to the µCurrent. Is this separate from the ADS1015.If the main task is reading small current, like in the pA to µA range, I would not use the µCurrent, but build a separate trans-impedance amplifier for the suitable range. This can use relatively normal OP, nothing really fancy is needed. Even just a MCP6001/2 or TLC271 is good for a start.

author: unitedatoms
author_rank: Frequent Contributor
timestamp: January 30, 2020, 01:34:17 am
content: In addition to what @Kleinstein said about 60 Hz immunity, reference. The missing frontend amplifier can be an issue.Consider figure 29 of datasheet of ADC. The easiest possible acquisition with low impedance source still requires an opamp. The reason is that switched capacitors on input of ADC are a difficult load for the source expecting fixed high resistance load (and may be need to work in both polarities of current). You may look into code how to involve the PGA included in ADC and to not bypass the PGA, that may possibly negate the effects of load of switched capacitor input.

author: andymouse
author_rank: Contributor
timestamp: February 01, 2020, 04:19:38 pm
content: Hi all,Thanks to you and @Kleinstein, this has become very interesting and a little confusing.My goal here was to use an ATmega328p, an ADC and a screen or LCD in order to 'free up' my multimeter, I want to output the microcurrent to a seperate screen that way I can use the meter at the same time, but I see that it's not quite as simple as I first thought, I have been reading up and thinking about what you have said, and I clearly need something between the microcurrent and the ADC, something that the fluke has.Is this some type of buffer like an OPAMP ? or could it be a high pass filter consisting of a cap and a resistor (probably not that easy!) what I now no is there is about 3mV of 50Hz ripple on the output of the microcurrent, this seems a lot to me, but the fluke appears to compensate or reject this in some way, I was reading the data sheet for the ADC and tried adjusting the sample rate to observe the effect but had no sensible results and I am using the PGA with a gain of sixteen, this is configured in the arduino library, I haven't added much but have you any thoughts on the path I should take ? another multimeter would be easier but not an option at the moment and this way I might learn something. If it were another stage needed I have some Burr Brown INA105KP instrument amplifiers, these are good quality devices that are used in the measurement field, I wonder if they could be useful (random thought) Not sure what to do next any suggestions would be great. The Arduino is running from a 9v battery and the microcurrent has its own 3v supply, the output is fine on the fluke. Just thought, perhaps some transistor output stage maybe what I need ? but now I'm just guessing, but worth a look...cheers.Andy

author: Kleinstein
author_rank: Super Contributor
timestamp: February 01, 2020, 06:23:12 pm
content: There is not much special HW needed. A simple low pass RC filter in front of the ADC may help a little. The other point would be checking of the µCurrent version is sensitive to capacitive load at the virtual ground. The µCurrent creates it's own virtual ground, so if the same supply is used for the µCurrent part and the ADC, one must use a differential input. Using separate supplies adds some capacitive load to the virtual ground of the µCurrent.A main part would probably be to get an integration time that is close to a multiple of 20 ms. As the ADC itself does not support this directly one has to use some averaging, e.g. over some 5 or more values at 250 SPS. This would improve the 50 Hz suppression quite a bit, though not as good as with the DMM. Chances are the DMM would use something like 100 ms Integration so equivalent to the average of 25 readings at 250 SPS. Alternative more readings at a higher rate may allow some fine adjustment.

author: SilverSolder
author_rank: Super Contributor
timestamp: February 01, 2020, 06:32:06 pm
content: The noisy signal could also be averaged in software, as well as an external RC filter. This project sounds completely do-able to me.I have the uCurrent Gold and find it normally gives a stable signal that responds well to a little smoothing.

author: andymouse
author_rank: Contributor
timestamp: February 05, 2020, 05:34:19 pm
content: Hi,Firstly, thanks to you and @Kleinstein for your help. I now have a stable readout that occasionally varies but no more than a count, it now compares favorably to my Fluke DMM. I used a 40hZ low pass filter comprising of 3.9K res and a 1uF cap physically as close to the ADC as I could, and in software I took 20 readings at 20 millisecond intervals and averaged them out. To test I made a 50M resistor chain and a 3v coin cell and measured them both with my only tool the fluke, and the calculated current was 59.1nA the displayed current was 59.0nA and not moving (unless I opened a window) so that's good enough for my first steps. I then put the UNO away and used an Atmega328p with a variety of batteries and power supplies and found them all good. My next test was "real life" I have a Atmega328p with 2 switches for "wake" and "sleep" in "wake" the 328 switches a transistor and lights a LED via a separate coin cell and I read a current of 244uA which agrees with the fluke and seems reasonable to me, in "sleep" the sketch powers down the device fully and I measure 108.5nA which again agrees, my display is quite stable now regardless of what I do . So now I want to design a PCB for the ADC and screen, battery ect I have a question about the microcurrent, I notice that Dave does not have a ground plane is this just a choice or has he electronic reasons, as I would normaly use a ground plane (less etching the better) but I dont have his experience so Im kinda curious.CheersAndy

author: Kleinstein
author_rank: Super Contributor
timestamp: February 05, 2020, 06:01:56 pm
content: For reduced noise one should ideally run the ADC continuously and average as many results to get a multiple of 20 ms (16.6 ms in the US). Taking a reading every 20 ms is not as effective in 50/100 Hz suppression. With continuous reading the filter frequency can be higher and thus faster settling is possible.When making you own board one could include the input amplifier - so no need to combine it with an extra µCurrent board. For small currents and currents with a lot of spikes one may have to use some filtering early one at the shunt / measuring resistor, to avoid hitting a limit at times even if the average current is well within the range. A TIA instead of shunt + amplifier may have some advantage here as it can use a smaller cap.A good ground plane can be good for RF effects and reduce EMI problems. However once a ground plane is cut to pieces it is more like an EMI problem than helping. So the often seen ground fill is more like a poor excuse - it may work, but it could also fail.For high precision or very low cross talk it is better to use defined ground traces than a ground plane, at least for the critical part.The µCurrent cares more about µV stray voltages then EMI - so it does not use ground fill.With a µC one kind of has to think about both EMI from the µC and care about stray currents / ground loops. So one may use a ground pane for the µC part only.

author: iMo
author_rank: Super Contributor
timestamp: February 05, 2020, 06:28:48 pm
content: The ADS1015 has got differential inputs handy, that may help as well - in DS there is a design example of reading a low side shunt + OPA333 + filter + ADS1015.