2

For a project, I am using the following circuit to detect the load3 change. With an 16-bit coulomb counter ADC I am measuring the current I. Using onboard Arduino Uno ADC I am measuring votage, V at node A.

With the equation R = (OCV - V) / I; where OCV is the open circuit voltage at no load condition, R = 10 mΩ + Load3 + Source (3.7 V) internal resistance if it is a battery, I am measuring the change of load3 in the figure. By changing load3 I mean initially there is no load3 (shorted-indicated by blue line) and then I introduce a 10 Ω load3. But the problem is when there is no load3 the code reports it almost correctly (R = 14 mΩ) but with the 10 Ω load3 I found it reports only 80 mΩ instead of 10 Ω.

My questions are:

  1. Why is the measurement mismatch so huge? If it is because of the ADC (both V and I measurements are from coulomb counter and Arduino ADC), how can I address that it is for the ADCs?
  2. What are the possible ways to improve the measurements accuracy?

Thanks!

circuit

Shu
  • 109
  • 6
  • You discuss 'R' but there is no 'R' in your schematic (which is, let's say, a little untidy). I've read your question three times and I'm still not sure what you're trying to do. – Transistor Sep 26 '20 at 18:48
  • @Transistor sorry the figure is messy! R= load3+10mohm+ source (3.7V) internal resistance (if it is a battery!). I'm editing the post also. Thanks! – Shu Sep 26 '20 at 18:54
  • Coulomb counter will often have a long average. You will need to measure voltage during PWM ON/OFF times and account for PWM duty cycle. – mbedded Sep 26 '20 at 18:57
  • You can add a schematic in using the CircuitLab button on the editor toolbar. Double-click a component to edit its properties. 'R' = rotate, 'H' = horizontal flip. 'V' = vertical flip. Note that when you use the CircuitLab button on the editor toolbar and "Save and Insert" on the editor an editable schematic is saved in your post. That makes it easy for us to copy and edit in our answers. You don't need a CircuitLab account, no screengrabs, no image uploads, no background grid. – Transistor Sep 26 '20 at 18:58
  • @Transistor thanks for the details. I'll follow the instruction from the next posts. – Shu Sep 26 '20 at 19:04
  • @mbedded from the coulomb counter ADC datasheet I found the conversion time is 1sec. Now my PWM on time is 1sec and off time is 1 sec. I am reading the I value at every 1s. Can you please add a bit of detail if I am wrong? – Shu Sep 26 '20 at 19:11
  • @Shu So you are using something like a fancy Keithley that is traceable to NIST standards in order to make actual measurements and you want your Arduino to replicate similar ***accuracy*** results? – jonk Sep 26 '20 at 19:14
  • @jonk I didn't get your point. I am trying to understand up to what point I can improve the accuracy with my setup. If you can add something related that would be great! – Shu Sep 26 '20 at 19:24
  • @Shu See [this](https://electronics.stackexchange.com/a/310500/38098) as I think that will clarify my point, somewhat. That said, yes I also see that you have other issues that need to be addressed. But until you ***understand*** what I write at that link, the rest isn't worth pursuing with you because we won't share the same meaning for the words we may use. We need common ground. – jonk Sep 26 '20 at 19:29
  • "when there is no load3 the code reports it almost correctly" What code? From the Arduino? But the Arduino is measuring voltage, not current or resistance. It's just not clear what you are measuring, where you are measuring it, and why you think it means what you think it means. – WhatRoughBeast Sep 26 '20 at 20:20
  • 1
    @Shu My recommendation is that you take Transistor's suggestion right now and use the schematic editor as step 1 in clarifying your question here. Don't wait until "next time." That should be followed by a discussion you provide us about your approach and why you think it should produce what you think it produces. Pay special attention to describing node **A** as you see it operating under your PWM scenario. By the time you get done with those two things, I suspect you'll be a lot closer to your own answers. And so will we. – jonk Sep 26 '20 at 21:11
  • Since you estimate current from measuring delta charge per delta time, what determines the duration of the time interval between Coulomb count measurements? Is the Coulomb measurement triggered by an Interrupt Service Routine, or is it simply polled in the usual Arduino loop() function? Have you used an oscilloscope to measure the variance of the measurement intervals (timing jitter)? – MarkU Sep 26 '20 at 22:58

0 Answers0