Although I have experience with building circuits and code, it was way back in the days of the intel 8008 and 8080 ics, and I have to admit to being way out of date and 'rusty'!
Before delving into this project, an explanation of the problem I hope to solve will probably help.
I've just finished converting a car from ICE to all electric. This project has taken me the last 18 months, and the car has been taxed and on the road for the last week. My concern now is to monitor the individual batteries, both when charging and in real time while driving.
Since I couldn't afford the 20 or 30K plus for an AC motor and high tech batteries, I went with a 8inch diam series DC electric motor and 11 12v deep cycle lead acid batteries. Since electric motors develop their max torque at start/stall, it develops about 80hp at start although only a 17hp rated motor when at it's design speed. It accelerates well from a standing start as a result!
The 11 batteries are wired in series, and when fully charged give me 143Volts DC, ie approx 13 volts each. The charger puts out 155V when charging.
In order to not stress the batteries and help them last as long as possible, it is recommended that the batteries are never discharged below 80% of their normal charge, which is 114.4V total.
There are very expensive battery monitoring systems out there which can be hooked across each battery ( one board per battery) and which talk to each other and the charger/dash display by serial bus, but I would like to see if I can build something myself, and wonder if the arduino could be put to the task.
So before I dive in I'd ask for some advice please.
My initial requirements are to be able to monitor voltage of each the 11 traction batteries, and display the results. When the vehicle is stationary, or the pack is on charge, I'd like to be able to view the actual voltage of any battery. (Say by simply selecting it with a 12 way rotary switch, and to view the total pack Voltage in the 12th position of the switch.) I realize that I could do this with no Arduino;-)
But when driving it is really useful to have real time monitoring of each battery, and display each by means of leds in a bar graph, one vertical row of 10 per battery. Automatically switching through the whole pack several times a second.
If a particular battery starts to 'fail' or droop with reference to the others when driving, it would then be visible in use as a drop in the bar for that battery.
Using green leds for the top 8 and red for the bottom 2, and setting the threshold V between red and green to that 80%V, would quickly tell if a battery was in danger, dropping below the average under load or acceleration.
Because the arduino only has a limited number of inputs, I visualize multiplexing the battery inputs into just one, and because of the serial connection of batteries in the pack, and high total voltage involved I visualize opto isolating each battery to just get 'it's value. Rather than trying to read the total pack voltage, I can see using the arduino to 'sum' the individual 11 voltages each time it scans through the pack.
So, before gong further, is the arduino a good choice for such a project? If so would anyone care to help?
Electric car conversions are becoming more common, and I would like to open source the project, with variants, (many home built evs use either 8V or 6V golf cart traction batteries, so battery numbers can reach into the 20s) so there would need to be a built in plan for more (or less, I've seen 72v cars with just 6 12V batteries) inputs and 'various' input voltages.
I also would like to store the data for downloading to a pc, at first by the USB Serial, but later by wifi, so for example on arriving home the car could upload it's trip data and my pc could store it. Perhaps even emailing me details if a battery was going down!
Thank for reading this, if you can help with advice on chips, opto isolators etc, I'd appreciate hearing from you!
Colin McC
Whistler
BC
Canada.