Hello all! I am looking to add a current tester to my project (a battery-powered knock sensor attached to my front door) so that I know when to recharge. It uses two 18650 batteries at 3400mAh each as the power source. I've successfully built a voltmeter, but that doesn't really help me considering that Li-Ion does not have the same voltage drop curve as, say, an alkaline battery (at least as far as I'm aware, and it's highly plausible that I could be wrong).
I've searched around and the circuits/modules I've seen either can't handle the voltage of two batteries, can't handle the current, or are just plain overkill (and cost-prohibitive). Maybe I'm not using the right search terms, but it is equally likely that I just plain lack the knowledge to adapt a circuit to fit my needs. If anyone could provide me with some guidance as to how to build my own, it would be appreciated. Thank you!
Li-Ion batteries must be charged and discharged properly, and battery voltage is the measurement that everyone uses. The batteries will be very rapidly ruined if you do not do this correctly.
jremington:
Li-Ion batteries must be charged and discharged properly, and battery voltage is the measurement that everyone uses. The batteries will be very rapidly ruined if you do not do this correctly.
I have a charger, I do not want another. I just want to test the current/capacity with the Arduino.
No!
You want to track the voltage under load.
Every chemistry has a particular curve. Buy your batteries, fully charge them, use an Arduino with A0 and a voltage divider. Write a sketch where millis() is used to track A0 from the R1/R2 divider (very high resistance) when your original knock-knock is connected. Read every 15 minutes and store or output serially the time interval + A0 voltage.
Your data should closely match the manufacturer's curve. Put your curve in EEPROM or PROGMEN. Project finished.
Every chemistry has a particular curve. Buy your batteries, fully charge them, use an Arduino with A0 and a voltage divider. Write a sketch where millis() is used to track A0 from the R1/R2 divider (very high resistance) when your original knock-knock is connected. Read every 15 minutes and store or output serially the time interval + A0 voltage.
Your data should closely match the manufacturer's curve. Put your curve in EEPROM or PROGMEN. Project finished.
Ray
Oh okay, thanks. I thought that since current sensor breakouts exist (like the ACS712), I could just build my own. I also thought that 18650s dropped voltage sharply after a while instead of a smooth decline like an alkaline. Guess not! I'll have to check out my voltmeter (it uses the R1/R2 dealio like you say) when I get home and play around a little bit.
If you test a battery under load, of course you are discharging it... Typically, you'd do that to test the condition of the battery or it's ability to hold a charge, and then you'd re-charge it immediately after the test. If you think the battery is going dead and you're not going to recharge it, the last thing you want to do is pull current out of it for a test!
I think computers (and phones) use an algorithm... By measuring the current drain while monitoring voltage you can calculate/estimate how many amp-hours have been used and how many remain.
majhi:
Oh okay, thanks. I thought that since current sensor breakouts exist (like the ACS712), I could just build my own. I also thought that 18650s dropped voltage sharply after a while instead of a smooth decline like an alkaline. Guess not! I'll have to check out my voltmeter (it uses the R1/R2 dealio like you say) when I get home and play around a little bit.
For R1/R2 calculation, learn how to use this javascript application. It can run on my Android tablet or my Linux notebook.