I am trying to switch 12V using a Transistor and an Arduino, which outputs 5V. When I connect the Arduino to the Transistor base and 12V to the collector, I get 4.2V on the Emitter, and I don't understand, why. The Transistor is a C9014. Why is the output 4.2V and not 12V, as I expected?


simulate this circuit – Schematic created using CircuitLab

  • 6
    \$\begingroup\$ Please add a schematic to show how you have connected the transistor, load, and Arduino. It sounds like you are trying to use an NPN transistor as a high-side switch. \$\endgroup\$ – Elliot Alderson Jul 4 '18 at 19:47
  • 1
    \$\begingroup\$ Connect the transistor emitter to ground and connect the load between the collector and 12V supply. \$\endgroup\$ – G36 Jul 4 '18 at 19:51
  • 2
    \$\begingroup\$ As per @G36 but also add a fly-back diode! \$\endgroup\$ – Oldfart Jul 4 '18 at 19:52
  • 3
    \$\begingroup\$ As per @Oldfart, but that's only really necessary if you have an inductive load (like a motor). \$\endgroup\$ – vicatcu Jul 4 '18 at 19:54
  • 3
    \$\begingroup\$ I think a resistor to limit base current might be nice? \$\endgroup\$ – jonk Jul 4 '18 at 19:56

When you connect the base to 5-V output and the collector to 12 V with a load between the emitter and ground, this would be called "emitter follower". The voltage on emitter will be "following" the base voltage minus about 0.7 V, which you perfectly determined. To switch your load to full 12-V, you need to connect the emitter to ground, and your load between the collector and +12v power rail. An get some limiting resistor (100-200 Ohms) between the MCU output and the transistor base.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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