This question already has an answer here:

I have a 3.3v line, which I will need to pull low intermittently with a microcontroller to send data.

I have tried using a BC547B NPN transistor (also tried BC337, BC517 and BD139) with the Collector connected to ground, the Base connected to a digital pin of the MCU (an arduino) and the emitter connected to the 3.3v line.

When the MCU needs the 3.3v line to be pulled low, it sends +5v to the Base of the BC547 so the emitter should be pulled low. When the 3.3v line can return to normal, the MCU sends LOW (0v) to the BC547. I have also tried adding a 1k resistor between the Base and the MCU.

What am I doing wrong? (I know I can use an Arduino to pull the bus low, but I don't want to run the bus directly to the Arduino because it might get damaged)


marked as duplicate by Kaz, placeholder, Nick Alexeev, PeterJ, JYelton Sep 14 '13 at 5:20

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • \$\begingroup\$ Does this question (on the front page and asked 2 hrs ago) help? electronics.stackexchange.com/questions/82222/… \$\endgroup\$ – dext0rb Sep 13 '13 at 17:18
  • \$\begingroup\$ When you say "3.3V line" I assume you mean an I/O or something that's low current rather than a power line. Is that correct or are you trying to gate power to something. If the former is true, why not just use a pulldown resistor? You can size the resistor such that you can rest assured you won't damage your Arduino. Just to clarify I mean that the arduino can sink the current via the resistor. \$\endgroup\$ – Doov Sep 13 '13 at 17:19
  • 4
    \$\begingroup\$ If you insist on using a transistor I think you might have your collector and emitter reversed. \$\endgroup\$ – Doov Sep 13 '13 at 17:21
  • \$\begingroup\$ Add a schematic? \$\endgroup\$ – Phil Frost Sep 13 '13 at 19:35

I assume your "3.3V" line is tied to 3.3V through some sort of resistance, and that ground is the rail you are trying to pull it to when MCU outp to the base is high. Swap connections: Your high impedance normally 3.3V line should be tied to the NPN's collector, and the ground rail tied to the NPN's emitter. With that done, a +5V signal from the MCU to the base of your NPN (use an in-line current limiting resitor to the base!) will pull the collector low.


First, the emitter should be connected to ground and the collector to the 3.3V signal. Do keep the 1kilohm resistor from the base to the arduino.

With no connection to a 3.3V supply, how is the NPN transistor supposed to bring the voltage on the 3.3V line back up to 3.3V? You need a pullup resistor from the 3.3V signal line to the 3.3V supply. In other words, the transistor's collector, one end of the resistor, and the 3.3V signal are all connected together.


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