Using microcontroller's ADC to measure the voltage between LiPo cells
Yes, that's a valid approach, certainly with just three cells. You have three voltages to measure. Obviously you'll need a voltage divider on at least two of them and you'll have to consider the current draw of the divider keeping in mind that the micro probably wants to see 10K or less looking out of the ADC inputs. It's also possible to use a higher resistance dividers (M\$\Omega\$) and buffer the outputs with some inexpensive CMOS-input op-amps, or to switch the divider when you want a measurement with a high-side MOSFET or BJT switch. 

You'll have to watch the divider tolerances vs. the shut-down tolerance you're trying to achieve. If you use 1% tolerance resistors the error due to resistor tolerances alone could be much higher than 1% even though each measurement is only affected by ~1% by resistor tolerances (depending on the exact ratio- worst-case error of a voltage divider made from 1% resistors is between 1% for equal resistors to about 2% for very unequal resistors). Consider this example with 100K/200K nominal resistors. 

VM2 is 2.970V -1.00% error

VM3 is 3.040V  +1.33% error


Your calculation for the top cell would be V3 = VM3*3-VM2*2. In this case the error as a percentage of V3 is +6% even though all the resistors are within tolerance. You can always consider 0.1% resistors and it's unlikely (but possible) that the resistors would be so perversely off tolerance in the worst directions. 

This rapidly becomes a losing approach as the number of cells increases though.







simulate this circuit &ndash; Schematic created using CircuitLab