• 1 small DC Motor
  • 1 Arduino UNO
  • 1k Ohm Resistors(couldn't find any others, maybe I can put em in parallel to - reduce their resistance)
  • 1 NPN 2N2222 Transistor
  • 1 1N4007 Rectifier Diode

First off, I am able to run the DC Motor, but issue is the transistor overheats. Not sure if it's supposed to happen. I have an extra N-channel MOSFET Transistor - IRFZ44N lying around if that can be used. Doing a small project for a friend and I don't want to spoil the arduino.

enter image description here

Image above is how I connected the circuit.

  • \$\begingroup\$ What's the current of the motor? That is pretty much the only thing that matters. It looks like you've connected the transistor correctly (you say it works) so the only issue is the current through the transistor, which is the current drawn by the motor. You need to make sure your transistor is rated for the maximum current of the motor (usually the short circuit current) \$\endgroup\$
    – Puffafish
    Commented Oct 1, 2020 at 8:38
  • \$\begingroup\$ @Puffafish its the standard type of dc motor used in those tamiya cars, voltage supply rated at 3-10v and current (@ maximum efficiency): 0.81/ 1.15A \$\endgroup\$
    – chocopie
    Commented Oct 1, 2020 at 8:53
  • \$\begingroup\$ 1 kilohm limits the 2N2222 base current to under 5 mA from a 5V logic output. Not enough to bring a bipolar transistor into saturation with 1A collector current. So you'll see more than 0.2V across the transistor and it'll overheat. \$\endgroup\$
    – user16324
    Commented Oct 1, 2020 at 12:29

1 Answer 1


Your MOSFET is only specified for a gate drive voltage of 10V.

enter image description here

If you want to be sure your MOSFET will switch properly with the 5V gate signal provided by your arduino, then you must use a MOSFET which has RdsON specified at Vgs at or below 5V. Consider for example STP40NF10L:

enter image description here

There are many other choices, but make sure the RdsON spec at Vgs<5V is there, and the RdsON value is what you want according to motor current. Note threshold voltage is not relevant, it tells you when the FET begins to turn on, not when it is fully ON which is what you want.

Now you wired your 2N2222 wrong.

enter image description here

It would be the same as a FET. You want to use the NPN transistor or N-channel FET as a switch in common emitter mode (left), not as a follower (right).

Then your BJT requires enough base current to saturate properly. Check datasheet...

enter image description here

For 500mA motor current, you'll need a base current of 50mA which is already more than what an arduino pin can provide, and the VceSAT is quite high. So unless your motor is tiny and uses much less current than this, you should really use a MOSFET instead, or a low-VceSAT bipolar.


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.