I’m trying to finish up the PCBs for the boat this weekend and thought I’d share this little solution I thought was kind of neat.
Among other things, we need to measure the battery pack current, and fairly accurately This is mainly so the BMS can keep track of the approximate battery state of charge — i.e. percent charge remaining. To do this we need to measure the load current and the charger current all the time, and basically count coulombs in and out. (There are some more sophisticated things you can do by doing calibration, tracking impedance and temperature but I don’t plan on doing any of that craziness for something like this. There are some cool state of charge ICs out there as well, and you actually calibrate them with the cell you’ll be using. Pretty cool.)
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!
Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi
EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey
When I was developing Arduino-based lithium battery chargers for an electric vehicle lab course at Portland State, I used low-side current sensing with an op-amp at first and had a very hard time dealing with noise at those millivolt levels. Instead we used current sensing chips, in our case Allegro’s ACS712 series (Digikey link). A Hall sensor measures current magnetically from isolated pins, so you can put it anywhere, low-side or high-side. A nice analog voltage output proportional to current can be connected directly to an Arduino analog input. Very easy and accurate.
When I was developing Arduino-based lithium battery chargers for an electric vehicle lab course at Portland State, I used low-side current sensing with an op-amp at first and had a very hard time dealing with noise at those millivolt levels. Instead we used current sensing chips, in our case Allegro’s ACS712 series (Digikey link). A Hall sensor measures current magnetically from isolated pins, so you can put it anywhere, low-side or high-side. A nice analog voltage output proportional to current can be connected directly to an Arduino analog input. Very easy and accurate.