I’m looking at trying to read voltages of individual cells coming off of a multi-cell LiPo battery via my CerbDuino.
The cells in the battery are wired in Series. Using a voltage divider I can make the voltage acceptable to my ADC pins.
The cells are 4.2v so the individual cells should read out a max of:
cell1 = 4.2v
cell2 = 8.4v
cell3 = 12.6v
So I understand that my the R values are different for cell1 vs cell2 vs cell3.
Questions:
Is the wiring in chicken scratch illustration correct to accomplish, with no short circuit effects?
This will hopefully eventually reside on a custom PCB with SMT parts.
a) I was thinking about 0603 or 0804 - any reason these wouldn’t be able to handle the higher voltages? For example, if I went to a 4 cell, so that would be a max of 16.8v.
b) Would going to a larger size (0804 or larger) resistor help with heat dissipation?
Is there another way, like an IC, that would accomplish what I am trying to do? I’m looking at a I2C chip from Ti that will do this as well, but it’s a 30 pin chip, which seems a bit of overkill from what I am trying to do. Sparkfun has a chip based fuel gauge, but it’s only for a single cell.
Your circuit looks correct. Hopefully you have the values correct too?
It’s not voltage on the resistors you need to worry about, it’s current but as your voltage is low this won’t be an issue. Depending the value for the resistor connected to ground, this will dictate the load to the ADC, and with something around 10-20K you are talking very low mW range of power dissipation.
I have a programme called ElectroDroid on my Android phone and it has a wonderful voltage divider as part of the suite. I input your 12.6 with 3.3V output and it gave me a 22K in the gnd resistor and 62K for the series one. This dissipates 1.89 mW so 0604 or 0805 will be just fine.
Beware of using too high a value for the GND connected resistor if the ADC input is expecting a low impedance. Running this too high will give you a non-linear response. Something like 10K is ideal. I use this sort of value with a 24Vdc supply monitoring setup myself and get good readings. This is with an Atmel AVR though.
Electrodroid will also allow you to set the resistance of the load so if you know the ADC input impedance, you can try this too.
We are planning on using standard 3S or 4S batteries.
Based on the datasheet, the problem is this:
“The ISL9208 supports battery pack configurations consisting of 5 cells to 7 cells in series and 1 or more cells in parallel.”
I was looking at using this (seems similar in intent to the one you provided):
Thanks again.
My first step was just get a divider working for a POC. If the project moves forward, I’d look at using a chip similar to one you provided or the Ti one.