0

I want to measure the Open Circuit Voltage of an electrochemical battery. When I measure this voltage using a multimeter, I get the measure correctly (around 1.12 V and without noise).

However, when I use an Arduino Mega with an Adafruit ADC1115, I get different readings (around 1 V, but with noise, because the reading changes in time in the range of centivolts and also sometimes in decivolts).

I would like to get the same reading as with the multimeter. What do I need to do? Maybe use a filter?

I think that the ADC is working fine, because if I measure a 1.5V AA battery, the measurement matches the one of the multimeter.

The electrochemical battery is continuously doing a series of charge/discharge cycles, so the voltage increases/decreases slowly in one direction per series (centivolts per second).

ocrdu
  • 8,705
  • 21
  • 30
  • 42
bardulia
  • 377
  • 1
  • 9
  • To average this change with a low ESR Cap, we need to know your tolerance for change dV over time and the battery ESR resistance with any current measurements you might have then C=V/R(=Ic) * dt/dV – Tony Stewart EE75 Jan 29 '22 at 12:52
  • What is the output impedance of your cell? If it is high then you may need a buffer between the cell and the ADC. – Elliot Alderson Jan 29 '22 at 13:09
  • You say your readings vary by centivolts and then you say that the battery is also changing by centivolts/sec. So what is your problem? – Barry Jan 29 '22 at 13:14
  • Are there bubbles forming in a wet electrolyte? If so ... possibly related https://electronics.stackexchange.com/questions/531190/why-does-my-vbe-multiplier-voltage-oscillate-when-wet/531250#531250 –  Jan 29 '22 at 14:11
  • @bardulia if you are doing serious research on AL ION, ask a more pertinent question for all uncertain goals. – Tony Stewart EE75 Jan 29 '22 at 14:43
  • @ElliotAlderson, I still don't know the impedance of the cell, I agree totally that I need to calculate it. Do you know here I can find any documentation on how to do this?. – bardulia Jan 29 '22 at 18:30
  • @user_1818839, it could be that. But why the reading with the multimeter is ok?. – bardulia Jan 29 '22 at 18:31
  • @TonyStewartEE75 thanks a lot for the information, I will calculate the tolerance and then the capacitor. Regarding the research, it is not AL ION, it is another type of battery. – bardulia Jan 29 '22 at 18:32
  • @Barry, sorry about the description, it was not accurate from my side. Let's say that we are doing a charging cycle, then the multimeter is measuring for example 1.121V, and then, a couple of seconds later, it measures 1.125. Another couple of seconds 1.127, and so on. However, when measuring with the ADC, I get 1.020, a couple of seconds later maybe 1.050, and suddenly a couple of seconds later I can get 0.930 V. Then a couple of seconds later I can get again 1.025. – bardulia Jan 29 '22 at 18:37
  • it could be that the voltage really does bounce around, but that your slow meter hides those fluctuations. Make sure you have a solid ground between the ADC and the battery and the mega; little push-on dupont wires might not cut it on such sensitive readings because the vcc and ground can float towards each other under modest loads since the cable can easily have 0.5 ohms. – dandavis Jan 29 '22 at 21:24
  • @dandavis thanks for the answer! Let me explain my last attempt. This morning I tried to use the oscilloscope to be sure of the OCV signal and then just after connecting the probe, the noise dissappeared. So I am simultaneously measuring the OCV with the ADC and also with the oscilloscope. So could be this related to the ground as you said?. – bardulia Feb 08 '22 at 15:17

1 Answers1

0

schematic

simulate this circuit – Schematic created using CircuitLab

If the dV/dt is small, meaning dt >> dV and dV is ~ 1% then adding bulk very low ESR capacitors will filter only some of this instant change.

Otherwise, a compromise between digital filtering and expectations for decay time and standard-deviation comes from knowing why it changes.

This simple model is not enough as there are more than one RC equivalent circuit in every battery cell, the obvious parallel plates and the double-electric charge layers. But let's use it anyways.

\$V_{bat}= V_{C1} - I_{bat}*R_1\$

So there will be burst drops in decivolts due to I*R1 and gradual drops in mV due to C1 being discharged.

While batteries have ESR*C time constants in the order of seconds to minutes, low ESR e-caps have time constants on the order of 10 us ,so filtering above is only useful for preventing aliasing sampling errors in the step voltage changes due to burst loads.

The time constants are also extended greatly by increasing the resistance of the load ( reduce load current) relative to the source. This is almost the definition of Load Regulation Error. which is merely the ratio of source ESR to load R % or the measured Vdrop in % for rated current.

Recommendations:

1. Define the stability limits you want. i.e. tolerance spec

  1. Average your ADC results with fast enough resolution using statistics
  2. fast enough or slow down the step voltage from slew rate with a bulk cap R1(ESR)*C3 = T3 Let T3 > 5x sampling interval Ts to reduce aliasing error.
  3. Verify it meets spec (1.) (adjust if necessary)
  4. Decide if your battery ESR*C meets your TBD overall Load Regulation specs over time. Bigger is better and also some chemistries (Li Ion) are better than others like Al Ion.

6. Come up with better specs and test methods with DoE methods using Test Engineer's skills.

I've had these skills for many decades.

Tony Stewart EE75
  • 1
  • 3
  • 54
  • 182