Current measurement with an arduino.

Hi,
I've working on a project (nothing to do with arduino) that is powered by a large lead acid battery. On the bench the system works fine and the battery lasts for hours without problems, I can monitor the battery current and voltage as the battery slowly discharges at the expected rate. However, as soon as I use the item in the real world (where I can't plug in a multimeter) the battery goes flat much more quickly than I expect.

What I want to do is build an arduino based data logger to record the current and voltage of the battery over time. Measuring the voltage is a simple matter of a resistor bridge monitored by one of the analgue port. Measuring the current is a little harder, I know I could (in theory) add a small resistor in series to the load and measure the voltage across this resistor to calculate the current flow. However, this requires a very high precision, low value, temperature stable resistor, very accurate voltage measurement, and is only really practical if the current doesn't vary much.

I want to be able to accurately measure the current between a few milliamps up to about 10 amps. I understand that the normal way to do this is with a 'hall probe'. Has anyone done this with an arduino before? is a hall probe the right way to go? Is there a better method? Any suggestions?

Cheers

You can use one of these

http://shop.boxtec.ch/product_info.php/products_id/40267

together with one of these

http://shop.boxtec.ch/product_info.php/products_id/40538

without even changing your projects wiring. You can choose the gain to select the sensitivity you need.