Arduino + Motor Controller + Dewalt 18v motor

So I have what I feel like is a very newbie question here.

I have a Arduino with a Motor controller that can drive up to 24 volts and pull 30 amps. I can get my motor working without any issue. My question is when I place the motor under load it of course as we would expect pulls a lot of amps… it actually can pull way more then my board can handle.

My question is as follows if I let the motor pull as much power as it wants (assuming my board does not burn up) I will drain my battery insanely fast. Is there any way to limit or cap the amount of draw the motor is allowed to take from my board / power supply. I would rather shut the motor down when it’s load is pulling more then 20 amps then continue to draw more power.

If it helps under normal operations I am able to run at about 10 - 15 amps. When I get stuck on carpet, a crack in the pavement etc… things I did not detect with my range sensors the wheels seems to get “stuck” and it draws more and more current.

One method would be to monitor the current draw with a secondary sensor. The processor would monitor the current and shut down the motor driver over some threshold. There are several ways to sense the current including a shunt resistor(http://www.sparkfun.com/products/9028), or a Hall effect type sensor (Allegro makes some). Most clip-on CT sensors will not work in your case as the motor is DC (I assume your motor is DC as you are running it from a battery).

Auto resetting fuses are also a possibility.

To make a system that would throttle the current without cutting it off completely will be complex. It would use pretty much the same design principles as a current limiting power supply. Not something you are likely able to hack together quickly on a perf board.

Thank you very much