Since measuring individual cell voltage and temperature is essential for the safety and longevity of a (large) battery pack, monitoring and subsequent blocking loading or unloading of the battery pack is an absolute priority.
Using an Arduino nano for this purpose is interesting, since it can receive up to 5V on its ADC. Couple this to an LM 4040 as Bill suggests in one of his fine video's, and you have a good solution.
The problem here is the ground. One cannot use the common ground of the battery pack, since this would result in reading (let's say o 4S battery system) in reading somewhere around 3.2V, 6.4V,9V,12.2V). In using voltage dividers for cells 2 to 4, the actual voltage a cells number 2 to 4 could be mis interpreted.
My idea is to use for each cell and Arduino nano, an LM4040 and a buck up convertor from 2.6 to 4.2 volts. The arduinos would then in series drive 4 optical isolated relays, to start or stop loading c.q. unloading of the battery pack. Adding to this temperature measurement of each individual cell, and cell protection is complete.
As for the visual monitoring of the system, I would use mini LCD voltage displays for each cell, and a LED to indicate high cell temperature.
Any suggestion most welcome!
Since measuring individual cell voltage and temperature is essential for the safety and longevity of a (large) battery pack, monitoring and subsequent blocking loading or unloading of the battery pack is an absolute priority.
Using an Arduino nano for this purpose is interesting, since it can receive up to 5V on its ADC. Couple this to an LM 4040 as Bill suggests in one of his fine video's, and you have a good solution.
The problem here is the ground. One cannot use the common ground of the battery pack, since this would result in reading (let's say o 4S battery system) in reading somewhere around 3.2V, 6.4V,9V,12.2V). In using voltage dividers for cells 2 to 4, the actual voltage a cells number 2 to 4 could be mis interpreted.
My idea is to use for each cell and Arduino nano, an LM4040 and a buck up convertor from 2.6 to 4.2 volts. The arduinos would then in series drive 4 optical isolated relays, to start or stop loading c.q. unloading of the battery pack. Adding to this temperature measurement of each individual cell, and cell protection is complete.
As for the visual monitoring of the system, I would use mini LCD voltage displays for each cell, and a LED to indicate high cell temperature.
Any suggestion most welcome!
When you say load/unload do you mean charge/discharge?
Why go to the expense of a NANO for each cell plus a LM4040 when off the shelf components exist that do all you want. There are some traps (discharging and charging simultaneously) to be dealt with but I have the circuits for that.
So, why are you taking this approach?
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@paulex I used to sail on my buddies 39ft cutter rig. I built a solar system for my land yacht (RV) consisting of 7,200wH of LiFePO4 battery bank, 1,080W of solar panels, 3,000W Inverter, 120A charger. I used Battle Born batteries with built in BMS, but I am very familiar with the technology. There are BMS's you can buy for $40 and BMS's that cost $400. If you believe that the $40 BMS is as good as the $400, then I have a $10,000 rolls Royce I will sell you.
What does your battery bank consist of, Prismatic cells, Cylindrical, or a drop in style like Battle Born and several others?
When I speak of BMS, I actually mean ALL the following which may require additional components
Monitoring: A BMS monitors the battery's state in real time, including its voltage, temperature, charge level, and health.
Protecting: A BMS protects the battery from damage by preventing overcharging, deep discharging, overheating, short circuits, and other safety hazards. For example, if a cell's voltage gets too high, the BMS may disconnect the charging circuit. Similarly, when temperatures get too low, charging is disconnected and if the temp drops further discharging is disconnected.
Balance function
The BMS typically provides a reporting & control system via Bluetooth
I can not recommend anyone better than Will Prowse for accurate timely information on this subject. Will also provides updated links to the best buys on all things solar. At the moment for instance a LiFePO4 (the safest chemistry) 12.8V 314AH set of prismatic cells (4x3.2V) is $799 for 1, $789 ea for 2, $769 ea for a set of 4 giving 16,076.8 Watt Hours for $3,076 USD. My 7,680 WH setup cost about $7,000. Prices have really dropped.
Let me know if I can help further.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@zander Hi ! Thank you for your questions and comments.
The reason I take the path of using an arduino is because of the flexibility it gives me to further develop and fine tune the BMS. Since 2017, I used the 123BMS, and I had to replace the individual cell modules on 3 occasions. Furthermore, I need to use the bluetooth connectivity (which also failed me from a malfunction of the board) and I need a working cell phone. On a ocean going yacht, we try to keep these systems as simple as possible, and repairable. And the cost of the arduino nano is so low, that carrying one or more spares is no problem.