Suppling efficient portable power for my project

Hello everyone!
(I'm new to electrical stuff so bear with me please.)
So I'm using Arduino Uno to control my robot project that consists of two 3V DC motors, two 6V Servo motors, and an ultrasonic sensor. I used a 9V battery to power my arduino through the barrel jack and used the 5V pin to power the ultrasonic sensor and the two servo motors and the 3.3V pin to power my two small DC motors. This system seemed to work perfectly fine when the Arduino is powered by the USB port from the computer. However, what I don't understand here is why the system works very slowly and then stops when the 9V battery is used.
I went and researched online regarding this topic and found out that some people used two power supplies to power their robots (9V for arduino and 4 AA batteries for servo motors). How efficient is this method at increasing the operating time? And how can I power my remaining two small DC motors?
Any suggestions for the best and most suitable power supply to use for my project would really be appreciated.

Don't power motors from the Arduino 5V pin. The onboard regulator is only good for 800mA, and then only with a 7.5V DC supply.
Motors can also draw high currents in bursts, those bursts can cause the Arduino to reset as the source voltage gets dragged down.

So:
Motors should be powered from a separate source.

You mean the servo motors should use its own supply of power (4 AA batteries)? Ok what about the DC motors and the Arduino barrel jack?
Can anyone give me a more clear answer?

You could power the Arduino (and a few low current sensors) with a 9volt battery, connected to the DC jack.

And the motors/control/transistor/mosfet power circuit from a set of AA batteries. Any voltage you like or need.

Just connect the Arduino ground and the AA battery negative/ground together.

The ground link is there only for the return current of driver transistors/mosfets.

Post a picture of your setup if you're not sure.
Leo..

cxmxpunk:
Ok what about the DC motors

Don’t power any motors from the Arduino direct. As Wawa says, the Arduino’s good for powering a few sensors, and perhaps some LEDs as indicators, but “real” power must come from an external supply (as in, not through the Arduino.)

Word of warning on the 9V batteries though: those PP3s are notorious for not lasting too long.

What I’ve done in the past, is power everything from 4xAAs giving 5-6V. Trouble is, that’s too low for the Arduino which should have 7V+ in through the barrel jack or Vin. So, I use one of these to up that 5-6V to a bit over 7V (it’s adjustable with a small screwdriver) for the Arduino through Vin, while taking 5-6V to the motors.