Need 24 channel isolated ADC inputs?

First time post here but have played with Arduinos for a while.....
I built an electric vehicle a few years ago www.mightyboyev.com that I use as my daily drive and I would like to improve my battery monitoring system. The vehicle uses LiFePo batteries (24 off in series). I use a Battery Management System that works well for balancing the cells (nomial 3.4 each) when charging but the monitoring is less then successful with the PakTrak modules that were designed for old school lead acid technology. I had considered going CAN bus but I want to keep this project simple hence the thought of using a 32 bit Arduino and trying to read 24 isolated analog inputs. Rather then redevelop the wheel, I thought someone may have been here before? Does anyone know of a shield out there that might be suitable for such ADC input task?
Any views appreciated......

This may help.

http://playground.arduino.cc/learning/4051

The 24 are in series, so you have a string of voltages from 3.4V up to 81.6V?
Or, you have access to the 24 inputs so the Arduino will only see 3.4V from each one?

Sorry not explained very well.

Yes the 24 (3.4Volt) cells are in series and I could measure accordingly.

ie cell 1 @ nominal 3.4 volts then cell 2 as 6.8volts etc up to the 81.6 volts as you have indicated and then in the sketch calculate the differences and hence monitor each cell.

A few points about any connecting to the traction battery pack:

It is important that I maintain the electrical isolation of this pack and do not want to reference to the chassis ground in anyway. An aux 12 volt battery is used (normal required by law) to power vehicle lights, horn, warning indicators and certain other items. This is connected to chassis ground as in a conventional ICE vehicle. This aux 12 volt source is used to power the battery management system (BMS) in my conversion as well. The Arduino could be powered from either source but I would prefer the aux 12 volt option. In DIY EV conversions, it is considered best practice to not bring the high traction pack voltage inside the passenger compartment in any way (for safety reasons).

So I would somehow like to isolate the cell measurements from the displaying device inside the vehicle totally.

Hence the thought about isolated differential inputs that can handle the voltage. Either via a series string measurement and simply calculating the difference as mentioned above or by using 24 separate floating/isolated inputs.

Hope this explains a bit more?

Regards
Bruce

We've discussed in the past.
My idea was to have a string of relays and a battery powered arduino acting as a voltmeter/relay controller. One relay would close at a time connecting the +/- of each battery to the arduino ADC input, thus the arduino only sees one battery voltage at a time, and the arduino "gnd" floats and is the same level as the battery -.
The relay control circuit can be a series of TOIC6B595 shift register that is easily driven and can sink decent current.
Altho, the relays can likely be simple 5V telecon relays and likely driven from arduino outputs directly.
For example, here's 15 being controlled by a '1284


Those weren't DPDT. These are, and need just 11mA at 3.83v to turn on.

Here are two solutions:

  1. Use a bank of DPST reed relays such as http://uk.mouser.com/ProductDetail/Coto-Technology/8002-05-10/?qs=sGAEpiMZZMv4tz1TW%2FArE7b2edLOV1FE%2FukC5Xbo4CI%3D to connect a capacitor across one of the cells at a time. See RL1, RL2 ... in the schematic. The series resistors protect against battery shorting and limit the capacitor charge current. Then use another DPST reed relay (RL0) to connect the capacitor to ground and an analog input pin. Drive all the relays from 5 Arduino pins using 3 x 74HC138 demultiplexer chips (this guarantees that you only activate one of them at a time). Don't forget the flyback diodes.

  2. Use one ATtiny25 processor per cell, powered from the cell. Each one measures its own Vcc using its internal 1.1V analog reference. Calibrate the 1.1V reference of each ATtiny and store the calibration constant in EEPROM. Program the ATtinys to remain in sleep mode until woken up to measure the cell voltage. Use opto isolators to communicate between the Arduino and the ATtinys. You can either connect them in a ring configuration (needs 25 opto isolators, but if a single ATtiny unit or single cell fails then you get no readings at all), or you can connect them in a parallel bus configuration (needs 48 opto isolators).

The costs should be about the same, since one DPST reed relay + 2 resistors + a diode costs about as much as one ATtiny + 1 or 2 opto isolators + one resistor (to drive the opto isolator) + one decoupling capacitor; but the first suggestion is probably easier to get working.

Thanks for the replies, I will look closer at the Atiny25 idea.... I am not a big fan of a relay style solution..... only a personal thing. Any optos that you would recomend looking into as well?
Cheers

Just about any opto isolator will do for this, provided it has a reasonable current transfer ratio at low currents. The cheapest on that my usual supplier has is http://uk.farnell.com/everlight/el1112-ta-vg/optocoupler-tr-o-p-sop-5/dp/1852690, which looks just fine, assuming you will be making a pcb and are happy to use SMD components.

what is that "power on failsafe" relay expected to do, exactly ?

Make sure no relay turns on until commanded. It keeps the individual coils in the off state until the sketch starts up and makes the overall GND connection so they can be turned on one by one.

I know that this thread has been around for a while but ... There are some very neat hall effect current sensors which could solve your isolation issues. Put a resistor in series to measure battery voltage, with completely isolated sense to output.

sbkenn:
I know that this thread has been around for a while but ... There are some very neat hall effect current sensors which could solve your isolation issues. Put a resistor in series to measure battery voltage, with completely isolated sense to output.

Nice idea; however the Hall current sensors I have come across are only reasonably accurate at currents of several amperes and higher, which would be too much drain on the battery.