Use Transistor As Motor Driver : Basic




Hello everyone, In this instructable we will be using transistor as a Motor Driver.

Actually, We can't say it as a Motor Driver as it can just toggle motor ON or OFF rather than controlling the motor speed or direction.

But, Using the transistor protects our Arduino from burning out. As ordinary DC motors runs on High Amps or consume more current than what an Arduino can supply.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Gather the Parts

  • An Arduino
  • A breadboard
  • A 220ohm resistor
  • A 2N2222 transistor
  • A DC motor
  • A 9V battery
  • Some jumper or hookup wires

Step 2: Wiring

Hookup all the components according to the circuit diagram shown above.

Step 3: The Code

As I mentioned above we can just toggle motor ON or OFF.

So, The following code turns the motor ON for 10 sec then turns it OFF for 5 sec and cycles through the process.

void setup() {

pinMode(13, OUTPUT);


void loop() {

digitalWrite(13, HIGH); // Turn the motor ON

delay(10000); // Wait for 10 secs

digitalWrite(13, LOW); // Turn the motor OFF

delay(5000); // Wait for 5 secs


Step 4: Done

Now Power the arduino and see your motor spinning.

Thanks for viewing.

Please write your questions or suggestions below.

Makerspace Contest

Participated in the
Makerspace Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    10 Discussions


    3 years ago

    This circuit seems a bit strange to me. You use a 9 Volt battery for the Motor but you control the transistor from the Arduino in a circuit called an emitter follower. This means that the voltage over the Motor will not be larger than the voltage of the Arduino (I assume 5 Volt) minus the base-emitter Voltage drop which is about 0.7 Volts. So the maximum Voltage over the Motor is 4.3 Volts and so you do not need a 9 Volt battery but you can supply it with the 5 Volt of the Arduino. Next to that you need a dioide in parallel with the Motor since the Motor will generate a negative voltage spike as soon as you stop controlling it. The Diode must be connected with the cathode to the emitter of the transistor and with the anode to ground.

    1 reply
    Anshu ARRobBest

    Reply 3 years ago


    But the circuit works great.

    And yes, I do need to consider about the back emf from the motor.

    Time to update my instructable.


    3 years ago

    You should be able to vary the speed of the motor using a PWM pin. Time to experiment!

    1 reply
    Anshu ARSmelter_uk

    Reply 3 years ago


    PWM pins work great to change the motor speed.


    3 years ago

    appreciated but instead of transistor use mosfet because they can handle higher current

    1 reply