# Powering a DC motor with an external battery

I'm working on a project where i need to control a 6 volt motor with an Arduino. The motor that I'm using requires 6 volts so I'm using a 9 volt with a voltage divider to get those 6 volts. My problem is that when I use the external power, the motor keeps spinning and ignores the input from the Arduino. If I use a 5 V battery and draw the 5 V from the Arduino, it works fine. I made sure that the voltage divider sends out 6 volts and the current code should have the motor not spinning. Here is the circuit: Motor Schematic.

What could I do to make the motor take the input from the Arduino?

Note: The schematic isn't like my actual circuit. In reality I have 6 V power supply instead of a 9 V and a voltage divider. I also am using a motor that requires 6 volts, while the one in the schematic requires 5 V.

• The circuit appears to have 1KΩ in series with 2KΩ for the voltage divider, and it shows a 9V battery supplying power. Is that how things actually are, or do you have some other resistor and some other power supply? Also, Please edit your question to include the motor part number and/or specifications, such as its rated current and its KV number Jun 12 '17 at 23:09
• Neither a 9v transistor radio battery nor a voltage divider are suitable for powering a motor. Jun 13 '17 at 0:22
• Im not using a 9v battery in the actual circuit, its just all that was available on circuits.io Jun 13 '17 at 0:49
• Still, the voltage divider is a bad idea. Jun 13 '17 at 4:46

Your schematic is bad - the motor is connected betveen base and power, emitor is connected to ground.That keeps the transistor open, and B-E voltage is like 0.7V, rest is for the motor to rotate. More over the transistor is open, so if you send pulses from pin 3, they are shortcuted to ground thru the transistor, not affecting the motor at all.

Switch the wires to Base and to Colector (lines 48 and 49) and it should work better.

(Still I would not use divider 9->6 volts, losing a lot of power constantly, I would rather change the PWM little down (and have it relatively fast, 1kHz or more) and the motor should be OK, if effective voltage ther would be under 6V - so the PWM under like 66% HIGH. Also shortcutting pin3 to ground with resistor is not optimal, the resistor should be between pin3 and Base.)

• Switching the base and collector worked great! Thanks so much for the help Jun 13 '17 at 0:18
• Good :) So can you mark it as solution? Jun 13 '17 at 6:10

In power application like motor driver you can not use voltage divider for step down the voltage because resistor drop the voltage when current flowing from the resistor increase. You can used voltage regulator or buck converter. The motor will work fine. Even you can use 9V battery and control the speed of dc motor using PWM. you use the following schematic both will work fine. The 2n2222 is the general purpose npn transistor which is used for power amplification. The arduino board can not provide large current at output pins to drive motors directly having a current rating more than 250mA.

In above schematic the LM2596 buck converter is used which current rating is about 3A. and you can adjust the desired output voltage. The second option which shows in schematic is to use 6V battery.