1

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.

enter image description here

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); } 
13
  • 2
    9V batteries have very low current source capabilities. Your motors will work, but they will be "weak" once you apply loads to them. They will seem fine without loads. Commented Sep 22, 2014 at 16:23
  • how are you running the motors anyway? digital HIGH or using PWM? Commented Sep 22, 2014 at 16:24
  • How to overcome this problem.. any solutions Commented Sep 22, 2014 at 16:24
  • 2
    9v "transistor" batteries are rarely suited for motors, and generally a poor choice for the arduino itself. Even with a lower impedance 9v supply, your 12v motors would probably perform poorly with only 9v in and the motor shield itself loosing at least another volt. Commented Sep 22, 2014 at 16:46
  • 1
    Disconnect the motors and battery from the motor shield. Then do these tests: 1. When you connect your 9V battery to one motor, does it run much more quickly, and well enough? 2. When you connect both motors to the battery do they run okay? If either answer is no, then the current approach is not going to work. Even if it is okay, the Arduino motor board will reduce the battery voltage, making things worse. Commented Sep 22, 2014 at 18:28

1 Answer 1

2

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.

1

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.