So I'm working on a Battery Monitor for an off-grid solar photovolotaic system...
I need to sense up to +/- 50A (going in or out of the battery) on a 24V system.
The aim of this project is to be very cheap and open source and to make use of (basically free) a stainless steel threaded rod as the current sense shunt (to replace the ones that are commercially available for around €25). I have done tests with this shunt on commercial battery monitors and it works perfect with negligible temperature effects.
I am using a 1mOhm stainless steel shunt resistor which serves as one pair of inputs of an LM324 (chosen based on availability and price). I'm adding 2.5V/47[V] to this signal and then amplify it *47 to get an output with 0A @ 2.5V going to -56A @ 0V and +56A @ 5V (roughly). This allows me to use a single rail opamp and keep the circuit really simple. (the schematic should be attached)
I do know about instrumentation amplifiers with built-in matched resistances and preset amplification, however the challenge of this project is to keep it really simple and cheap for anybody to easily replicate it.
The first tests showed that precision in terms of current value is satisfactory - there is no need for a really low error as this is a battery monitor not a scientific device - it shows the State of Charge of the solar battery and I'm happy with the approximately 5% precision I have measured.
However, I have problems with the offset (2.5V @ 0A) - and this IS a problem as for example even a small negative offset summed over a certain amount of time will lead to the monitor saying that my battery is empty .
- It is really temperature dependent (obviously) so I added a €0.2 thermistor to the circuit and made a series of measurements for temperature compensation. It works kinda well, but to see a non-zero offset when everything is off is kinda irritating.
- The signal is kinda noisy. I'm sampling @1kHz and averaging over 2sec periods which gives fair results while still allowing for integer maths and remaining sortof "real-time". The offset goes off by as much as 0.1A occasionally and I'd like to reduce this further.
So my questions:
- Any better idea for temperature compensation then adding a thermistor? Any tricky way of getting that 2.5V rock solid as that is my zero point?
- Any ideas for reducing signal noise? As my signal from the shunt resistor is tiny, I haven't put any filters between it and the LM324 as I was concerned its effect on the low signal. The wiring is pretty heavy-duty for this application (1.5mm2) twisted pair maybe 0.5m long only.
- Or is the LM324 so noisy that it might be causing the offset problem? In this case any suggestions for a similar category opamp that is better suited for this type of application?
And in general if you have any global suggestions to the improvement of this project - more then welcome.
Thanks
