Electrical – 2N3904 switching application

arduinoswitchingtransistors

I use 2N3904 as switch to power off/on the NEO-6M module control by Atmega328p.

I can draw until 96mA ( 100 mA ) .

I see on the stackexchange that Ib=Ic/10 to force full saturate the transistor.

Compute the current for base Ib :

Ib=Ic/10
Ib=100/10
Ib = 10mA

Compute the Rb :

Rb = (VCC – Vbe) / Ib
Rb = (4 – 0.95 ) / ( 10 / 1000 )
Rb = 305 Ohm

But when i put 305ohm / 100ohm to base the gsm module power on but restart loop, I think Ic do not provide enough current.

I strange but when I connect the GPIO directly to the base it works ?

Note : I share the same VCC between the collector and base emitter (from my lithium battery).

Maybe the transistor is not design for my application maybe connect two transistor as darlington ?

Regards

Best Answer

Consider the 2N3904 driven with 10 mA and controlling a 100 mA load: -

enter image description here

ON-SEMI data sheet was used for the above.

As you can see, the volt drop incurred (collector to emitter) is about 0.35 volts and this is lost across the transistor i.e. the 100 mA load doesn't receive 5 volts; it receives 4.65 volts and this may be enough to cause the problems you are seeing.

With the base connected directly to the IO pin you might be forcing 20 mA+ into the base and the volt drop might only be 0.3 volts across the transistor - this may be "borderline" OK and thus your system appears to work.

I would recommend using an N channel MOSFET having an on-resistance lower than 1 ohm to bottom this problem out - finding a logic level device capable of exhibiting a resistance less than 1 ohm should be fairly straightforward.