Controlling motors with transistors

We can control a motor by directly connecting it to the Arduino digital pin; however, any motor bigger than a coin would kill the digital pin and most probably burn Arduino. The solution is to use a simple amplification device, the transistor, to aid in controlling motors of any size.

Here, we will explore how to control larger motors using both NPN and PNP transistors.

Getting ready

To execute this recipe, you will require the following ingredients:

  • An Arduino board connected to a computer via USB
  • A DC motor
  • A resistor between 220 ohm and 10K ohm
  • A standard NPN transistor (BC547, 2N3904, N2222A, TIP120)
  • A standard diode (1N4148, 1N4001, 1N4007)

All these components can be found on websites such as Adafruit, Pololu, ...

Get Arduino Development Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.