I have the following circuit to adjust the speed of a DC motor based on PWM signal (Arduino, 5V) applied to the base of a BJT transistor, but it's not working. The motor doesn't move but I do hear a faint of buzzing sound from the inside.

The PWM is working just fine, I tested it out with an LED + current limiting resistor. The motor works OK when I make a short between transistor's collector and emitter.

Anybody knows what's the problem with the circuit? How can I fix this?

Simple DC Motor + PWM Circuit


  • Q1 is an NPN BC547 transistor.
  • PWM signal comes from a 5V pin of an Arduino board.
  • Please check the 9V motor's spec here.
  • \$\begingroup\$ What makes you think that anyone can do more than guess without knowing things like what q1 is and how it is being driven? \$\endgroup\$ – PlasmaHH Dec 12 '15 at 13:51
  • \$\begingroup\$ @PlasmaHH Sorry, I have no idea which one is obvious and which one should be elaborated. I just added more details to the question. Please let me know if you need more. \$\endgroup\$ – Andree Dec 12 '15 at 13:56
  • \$\begingroup\$ What are the motor specs? \$\endgroup\$ – Tyler Dec 12 '15 at 14:04
  • \$\begingroup\$ @Tyler I just added a link to the spec. \$\endgroup\$ – Andree Dec 12 '15 at 14:08

One way to understand a transistor when it is used as a switch is to assume that when the transistor is fully "on" the voltage between its emitter and base is 0.6V.

If you look at your system, when the Arduino sets the PWM pin to 5V. the voltage between the base and the emitter is 0.6V. Thus the voltage across the motor is 5-0.6=4.4V.

I don't know what's the specs of your motor, but 4.4V seems too small.

Using your components, there is a way to obtain almost 9V across your motor.

See the following schematics :


simulate this circuit – Schematic created using CircuitLab

Here you can see that when your transistor is conducting, the motor would see almost 9V and may run faster than just "buzzing".

| improve this answer | |
  • \$\begingroup\$ Hey, it works! However, I don't understand when you said that the voltage across the motor becomes 4.4V with the old arrangement. There is a +9V connected to the transistor's collector. So we can't take this into account? \$\endgroup\$ – Andree Dec 12 '15 at 14:19
  • 1
    \$\begingroup\$ Look up 'emitter follower', or 'common collector'. That's what the schematic in your question shows. The emitter voltage never gets higher than a diode drop below the base voltage, regardless of the collector voltage \$\endgroup\$ – Neil_UK Dec 12 '15 at 14:58
  • 1
    \$\begingroup\$ You might also try reducing the 10k base resistor to something like 1kohm. \$\endgroup\$ – Andy aka Dec 12 '15 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.