Two 300RPM 12V DC motors connected to arduino motor shield r3 power supply I have two 300RPM 12V DC motors connected to arduino motor shield r3 that is mounted on arduino uno board. 

Problem is my motors  runs very slow some times not even running.

After googling I found I need to use external power supply. I did  supplied 9 volt dc power to arduino motor shield r3. 
But still motor is running very slow what could be the issue. 

My other questions. 

When supplying power to arduino motor shield r3  via external power supply pins do I need still need to provide separate power to arduino uno board via power jack. 

Can I use 9 volt dc for arduino uno board and another 9 volt batter to arduino motor shield r3. 

Is single 9 volt batter enough for running two 300RPM 12 dc motor. 

My circuit. 



My program 

          void setup() {

          //Setup Channel A
          pinMode(12, OUTPUT); //Initiates Motor Channel A pin
          pinMode(9, OUTPUT); //Initiates Brake Channel A pin

          //Setup Channel B
          pinMode(13, OUTPUT); //Initiates Motor Channel A pin
          pinMode(8, OUTPUT);  //Initiates Brake Channel A pin

        }

        void loop(){


          //Motor A forward @ full speed
          digitalWrite(12, HIGH); //Establishes forward direction of Channel A
          digitalWrite(9, LOW);   //Disengage the Brake for Channel A
          analogWrite(3, 255);   //Spins the motor on Channel A at full speed

          //Motor B backward @ half speed
          digitalWrite(13, LOW);  //Establishes backward direction of Channel B
          digitalWrite(8, LOW);   //Disengage the Brake for Channel B
          analogWrite(11, 123);    //Spins the motor on Channel B at half speed


          delay(3000);


          digitalWrite(9, HIGH);  //Engage the Brake for Channel A
          digitalWrite(9, HIGH);  //Engage the Brake for Channel B


          delay(1000);


          //Motor A forward @ full speed
          digitalWrite(12, LOW);  //Establishes backward direction of Channel A
          digitalWrite(9, LOW);   //Disengage the Brake for Channel A
          analogWrite(3, 123);    //Spins the motor on Channel A at half speed

          //Motor B forward @ full speed
          digitalWrite(13, HIGH); //Establishes forward direction of Channel B
          digitalWrite(8, LOW);   //Disengage the Brake for Channel B
          analogWrite(11, 255);   //Spins the motor on Channel B at full speed


          delay(3000);


          digitalWrite(9, HIGH);  //Engage the Brake for Channel A
          digitalWrite(9, HIGH);  //Engage the Brake for Channel B


          delay(1000);

        }
The external power of the shield is connected to the VIN pin, so it will power the Arduino via that. (vin goes to the voltage regulator that will provide the 5v the arduino needs).

You can connect two batteries in parallel to provide mode current.

But since they are 12v motors, they would need 12v to run at maximum power. 9v is a lot less than that.