0
\$\begingroup\$

Ive got about 36 batteries that all stay between 2.8v and 3.6v, and I want to be able to accurately monitor the voltage(and therefor the state of charge) of all of them using an Arduino Nano, the two ways I can think of is use some analog multiplexers to get the 36 different batteries down to the 6 analog pins on the Arduino, or to use an analog to digital converter and then multiplex the digital signal. would either of these ideas work or is there a better solution than what I can think of?

\$\endgroup\$
0
\$\begingroup\$

You can use analog mux/demux iCs such as CD4051 (8 channels to 1). In fact, you can use 5 of them for the 36 batteries (you'd be left with 4 extra channels) and connect each to one analog input, and then connect all three control pins of each to the same three digital pins outputs in the Arduino. Then you'd be binary counting from 0 to 7 on those three pins and reading all 5 analog inputs on every cycle.

I also recommend using some op-amp to shift the voltage range of 2.8V - 3.6V to 0V - 5V. This way you'd get better precision and with some simple math on the Arduino you'll be able to get a much more accurate reading.

\$\endgroup\$
0
\$\begingroup\$

The batteries are all isolated? Or connected in series? Makes a big difference.

If they are isolated, then you can also use 8-input ADC chips such as MCP3208 with SPI interface to quickly read them.
You would connect SCK,MISO,MOSI to all of them, and then use a slave select to each one to access a channel at a time. 12 bit readings, and faster reads- about 10x faster than using the internalADC for 10-bit readings.

If connected in series, you need a different method as the voltage could be up to 129V.

\$\endgroup\$
  • \$\begingroup\$ The batta mmIn series \$\endgroup\$ – yanagibashi Jun 14 at 16:51
  • \$\begingroup\$ The batteries are in series? \$\endgroup\$ – CrossRoads Jun 14 at 19:40
  • \$\begingroup\$ Yeah my keyboard had a stroke its 36 LiFePo4 in series \$\endgroup\$ – yanagibashi Jun 14 at 19:42
0
\$\begingroup\$

What I have suggested at arduino.cc is to use DPDT relays to connect each battery independently to an analog input and Gnd of Arduino that is powered indepently and Not grounded to the stack. Thus it would be like working a handheld multimeter across each battery.

If you want to send data serially to something, optoisolated signals would be needed between arduino and the other end.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.