resistor question with my project

Hello everyone!

I am currently working on building my own DIY BMS system with my NodeMCU.I've got 2 ADS1115 boards that are connected via I2c to the NodeMCU. There are 8 different "channels" that I am measuring since each ADS1115 board has 4 inputs. Each "channel" has a voltage divider consisting of a 1M ohm and a 47k ohm resistor. Note, in the settings for the ADS1115 I am using the gain of 1.

My question is in regard to my voltage dividers I have with this project. I am wanting to measure up to 70V, so this divider gets it down in the range I need. I used 1M ohm because I know it's good when measuring voltage to have higher impedance, but if these resistors have a 1% tolerance, that leading resistor could be off by 10,000 ohms! So I could measure the actual resistance of the voltage divider, but that would only stand true for that pair of resistors. Each other voltage divider can be off in that 1%, or 10,000 ohms tolerance level (just for that first resistor).

This has led to all 8 voltage readings from the same low voltage source, to be all off by several hundredths of a volt. What is annoying is they are all off by different amounts, some 0.01V and some 0.05V. I am pretty sure this issue is just from the tolerance of the resistors.

Would it be best to use lower value resistors? I don't want them to be too low obviously or else that will alter the readings and slowly drain my lithium cells, but I also want to all of my readings to be a lot more consistent with one another.

Any advice would be greatly appreciated as always! Thanks!

used 1M ohm because I know it's good when measuring voltage to have higher impedance,

Then you know WRONG!. Read the data sheet!

but if these resistors have a 1% tolerance

What do you mean IF the resistors are clearly marked +/- 5% (gold band) are typical

Mark

YoungestEVer:
Hello everyone!

I am currently working on building my own DIY BMS system with my NodeMCU.I've got 2 ADS1115 boards that are connected via I2c to the NodeMCU. There are 8 different "channels" that I am measuring since each ADS1115 board has 4 inputs. Each "channel" has a voltage divider consisting of a 1M ohm and a 47k ohm resistor. Note, in the settings for the ADS1115 I am using the gain of 1.

Hi,
Welcome to the forum.

Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html .

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
We need to see how you will connect the 1115 to the batteries as the 1115 does not have isolated analog inputs and I assume the batteries are in series!

Thanks.. Tom.. :slight_smile:

You can buy resistors with tolerances of 0.1% or 0.01% easily.

They cost more than ten times the lower precision resistors but ten times one cent is not expensive in my projects.

1% are $0.1 at Digikey, 0.1% are $0.35

Thank you all for the replies! I apologize for explaining the resistors that way, bad habit of mine with the words :confused: yes, they are marked at 1% tolerance.

Good points about using more precise resistors. It will definitely add more cost to the project because I'll have 3 ADS1115's per board. And I'll be making several of these boards, so I'll be getting a LOT of resisters haha..

Yes I definitely have my batteries in series! In my code I just measure the voltage as it increases with each cell in series, and then subtract them from one another. I know it's probably not the best way to do this, but i don't think it's too awful. So the ADS1115 just measures the positive voltage coming in as the series of the cells increases, and then the main battery negative it tied to nodeMCU and the chip's GND. I'll then have an isolated power supply to keep proper isolation.

I'm just not sure what the correct way to go about this is, or is there one? With the voltages I am measuring is it acceptable to use lower values for my voltage dividers? Like maybe 47kohm or around that for my leading resistor?

I will attach of my very ugly hand drawn schematic that I whipped up so you guys can take a look. Roasts of my handwriting and drawing skills are always welcomed!

It is your choice for the resistors. But remember a lower value drains more current from the battery. For very high input impedance such as 10 megohms, add a 1pF capacitor close to each ADC pin to support the little spike of current that the ADC uses.

There are dedicated battery monitor chips available. Some of them have isolated interfaces so you can put one chip on each cell to measure individual cell voltages and currents. Have a quick read through the TI catalog.

Thanks for the advice! I’ll take a look at the catalogue as well. I guess it’s good there’s not only one right way to do it, I’ll have to just look at what is the max parasitic draw it can have and what’s acceptable.

Hi,
Thanks for the schematic.

You will need to calculate different potential divider values if the batteries are in series?
Can you show your batteries in your diagram please and label the terminal voltages?

Tom.. :slight_smile:

Apart from the hell of it, why are you doing this?

Mark

You also need to look at protection circuits for the inputs- if your 0v line for example broke , you’d put 70v into the Arduino killing it instantly .
I’d look at using the internal reference too for better accuracy, and limit the bottom resistor to something in the low kilo ohm range.
Whatever you do your software will need to allow the system to be calibrated on all inputs to overcome tolerances.

You could meter all of your resistors and either pair matching sets or note the exact divide for each line and make a calibration array.

Treat each new resistor like a quantum cat, open the box and end the mis..errrr mystery.