# How do transistors work in a circuit? [duplicate]

I'm currently just getting involved with electronics, just bought an Arduino starter kit and am fiddling around with it.

Currently i'm on a project which involves the use of a DC(spinning) motor in conjunction with an Arduino, and the book im using states that motors typically require more current that what the Arduino can provide, and that the Arduino can only provide 40mA, which is much less than what most motors require to do work.

However, the book states

Transistors are components that allow you to control high current and high voltage power sources from the low current output of the Arduino

and

Motors require special consideration when being controlled by a microcontroller.Typically the microcontroller cannot provide enough current and/or voltage to power a motor.Because of this, you use transistors to interface between the two.

I've done some googling and know the basics of how transistors works (e,g doping, n-type and p-type) but i don't see why attaching a transistor to a circuit/microcontroller that outputs less current that the motor requires magically makes the motor works.

I would really appreciate any clarification and/or explanations.

P.S. I thought that this question might better fit this site rather than Arduino.stackexchange as it is more about transistors in general.

A transistor is a valve and, just like a faucet controls the amount of water through it when its handle is turned, a transistor controls the amount of current through it when the voltage on its base is varied.

Considering an oscillating lawn sprinkler to be an hydraulic motor of sorts, it's easy to see that as the faucet it's connected to is turned on more and more, more and more water will be forced through the sprinkler and it will oscillate faster and throw out more water.

The transistor analogy looks like this:

    +V                +V
|                |
|                C
[POT]<-----------B  NPN
|                E
|                |
GND            [MOTOR]
|
GND


Now, with the pot rotated to the GND end of its resistive element, the transistor will be cut off and no current will flow into the motor.

However, as the pot is rotated more and more toward the +V end of its element, the base will go more and more positive with respect to the emitter, (which will also go more and more positive because of the voltage dropped across the motor) and more and more current will flow from the supply into the collector and out of the emitter into the motor, causing it to go faster and faster.

This configuration is called an "emitter follower" because the voltage on the emitter follows the voltage on the base.

If you want to use the Arduino to switch the motor on and off, though, the "common emitter" configuration:

                  +V
|
[MOTOR]
|
C
I/O---[R]---B  NPN
E
|
GND


is a better choice because with a LOW output from the Arduino the transistor will be cut off and no current will flow through the motor, while with a HIGH output from the Arduino the transistor will be fully turned on (saturated) and the motor will spin as fast as it can with the full supply (minus the transistor's collector-to-emitter saturation voltage) across it.

But BEWARE, Will Robinson, these circuits are only meant to help you understand how transistors work in circuits; if you try to build something around them, it's likely you might lose the transistor or the Arduino.

If you have a specific application in mind, post it and I'll be happy to help.

Transistor(BJT) is a device which draws a current higher current, proportional to the input current, from power supply and delivers it to the load. The output current ($I_C$) and the input current ($I_B$) are related by the equation: $I_C=\beta I_B$. Where $\beta>>1$. ie., A small current can control a larger flow of current with the help of a transistor.

So a transistor can control a device's (motor's) current flow with a smaller current (current from arduino). Remember that the current for motor is drawn from the power supply, not from the arduino, and arduino can control the motor current. And that is what we want.