I have a circuit which is supposed to vibrate a vibrating motor. The circuit is fairly simple and uses a BJT to step up the current to the motor. The motor also has a capacitor and diode in parallel to protect from surges.

Here's a picture of the circuit:

enter image description here

When I hook everything up, the motor doesn't turn on. I tested the voltage drop between the leads and it only read 0.2-0.4V. Do the values for the resistors/capacitors make sense? I'm fairly new to circuit design so I may have made a very simple mistake.

EDIT: I forgot to mention the motor needs to run around 3V with 75mA

  • \$\begingroup\$ A motor's stall current is always higher than the current at which it runs once it spins up. If the motor is designed to run off 3V and you have 3.3V supply, then why are you powering it from 5V with a resistor? What's the model of the transistor? \$\endgroup\$ Commented Nov 9, 2014 at 22:23
  • \$\begingroup\$ Did you tried to apply an higher voltage at the base of the transistor? If your control circuit cannot provide more than 3.3V you may consider using a MOSFET instead of a transistor. \$\endgroup\$ Commented Nov 9, 2014 at 22:28
  • \$\begingroup\$ @NickAlexeev The 3.3V source is actually from a pin on a IOIO-OTG microcontroller board. The pins are rated for a maximum of 20mA. Using what I learned in my electronics classes, the best option of upping the current is to use a BJT. Is there an easier way? \$\endgroup\$
    – nopcorn
    Commented Nov 9, 2014 at 22:33
  • \$\begingroup\$ @BrunoFerreira, see my comment above \$\endgroup\$
    – nopcorn
    Commented Nov 9, 2014 at 22:34
  • 1
    \$\begingroup\$ @maxmackie Then keep the expensive board out of it. You can create the digital on/off signal with a switch. \$\endgroup\$ Commented Nov 9, 2014 at 22:58

2 Answers 2


The 33Ω resistor is causing a big problem. According to Ohm's Law, the voltage drop across a resistor is proportional to the current flowing through it:

$$ V=RI $$

So when your motor is running and pulling 75mA the voltage drop across a 33Ω resistor would be (33 * 0.075) 2.475V. That leaves just 2.525V to run your 3V motor.

However, that only holds true when the motor is actually running. A motor doesn't arrive in its packaging already spinning - you have to get it to start moving, and that means overcoming its inertia. This requires more current than the normal running current, and is known as the "stall" current, since the motor isn't spinning at the time (it's stalled).

That stall current could be many times the running current.

As an example, let's assume a stall current of 150mA. What would the voltage drop through the resistor be then?

$$ V=RI = 33×0.15 = 4.95V $$

4.96V from a 5V supply? That's not good - only 0.05V left for the motor. There's no way that's going to start moving with just 0.05V.

So what do you need to do? Well, simply put: ditch the 33Ω resistor and replace it with a power supply of the right voltage.

You are controlling the BJT from a controller board that runs at 3.3V. That board will have its own 3.3V regulator on it to power the main chip.

Assuming that regulator is capable of providing enough current to drive the motor, then you can draw your main current from it:


simulate this circuit – Schematic created using CircuitLab

However, if the regulator on the board isn't powerful enough you will need to provide your own regulator to drop the voltage.


simulate this circuit

Edit: Apparently the regulator on your board is a MIC5216 which can supposedly supply up to 500mA. Assuming your motor has a stall current below 500mA (less the current required by the rest of the board) you should be safe enough to use it to supply the motor.

  • \$\begingroup\$ This is incredibly insightful. Thank you for your time and patience. \$\endgroup\$
    – nopcorn
    Commented Nov 9, 2014 at 23:24
  • \$\begingroup\$ A quick question, in your circuits you've changed the type of BJT, the capacitor value and the base resistor value. The transistor I have is an 2N2222. Is there a way to keep that in the circuit or should I buy the 2N3906? \$\endgroup\$
    – nopcorn
    Commented Nov 9, 2014 at 23:30
  • \$\begingroup\$ That BJT is just the default in CircuitLab. I didn't bother changing the value. Any small signal NPN will do fine - the 2N2222 is a very common (and good) choice of NPN. \$\endgroup\$
    – Majenko
    Commented Nov 9, 2014 at 23:31
  • \$\begingroup\$ Cool. Should I swap the 1K resistor for a 470 one? I'm not sure why you changed it. \$\endgroup\$
    – nopcorn
    Commented Nov 9, 2014 at 23:45
  • \$\begingroup\$ Reducing the resistor value would allow more current to flow through the BJT. A 1KΩ might strangle the current a little (or it might not). Better to "open the tap" wider than you need to let the water flow than block the pipe. \$\endgroup\$
    – Majenko
    Commented Nov 9, 2014 at 23:49

With the 1kohm base resistor, the transistor will be 'fully on' at 3.3v (base current is about (3.3-0.7)/1000 = 2.6mA), so that isn't the problem.

The 33ohm resistor however will drop 2.5v at 75mA. As such, there's less than 1.8v left for your motor. You should remove it. You can limit the current by either lowering the supply voltage (use your 3.3v in stead of the 5v supply for the motor), or (more complex), setting the base current so that the transistor provides exactly the right current. Obviously in your case, the first scenario is most straight forward.

  • 1
    \$\begingroup\$ No no no, you want to get rid of the 33Ω resistor altogether - it is not a suitable method for dropping a voltage with a variable current device. \$\endgroup\$
    – Majenko
    Commented Nov 9, 2014 at 22:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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