Logic-level transistor not switching

If the lamp is really 0.75A @ 5V, then it's resistance is closer to 7 ohms (when hot).

The Vgs of 2.5V is the threshold, where it will just start to conduct, so you have not chosen a good MOSFET. However, it probably would work, if the load resistance was a constant 7 ohms. But, it is not a constant 7 ohms, a cold filament can have 10 times less resistance than a hot filament. So, you never get enough current to heat up the filament.

enter image description here


I found the FQP50N06L to have a max Vgs of 2.5V, so it should work (right?).

2.5 V is not the 'max' Vgs, it is the threshold voltage at which the FET should draw at least 250 uA when Vds is 2.5 V, ie. the point where it just starts to turn on.

Your FQP50N06L may be at the upper end of its spec and/or there might be some voltage drop in the Gate circuit (check your resistor values), but a 'Logic Level' FET is rated for Gate drive voltage of 5 V, not 3.3 V. For reliable operation at 3.3 V you need a FET which is rated for a Gate drive voltage of 2.5~3.0 V.

Another thing to bear in mind is that an incandescent Lamp has about 10 times lower resistance when cold, so the initial current when turned on may be up to 10 times higher than normal, ie. ~7.5 A for your '0.75A @ 5V' bulb. If the circuit cannot supply this current then the bulb may turn on slowly or not at all.


2.5V is the gate-source voltage threshold which is where it just barely starts to turn on. You want your applied voltage to be considerably higher than that. Go by the gate voltages used to obtain the rated RdsON, not the gate threshold voltage. enter image description here

You can also go by the I-V curves in the datasheet and calculate the resistance from the slope if you want to obtain the specific values at other operating points (such as 3.3V which is above the threshold but below what was used to get the rated RDson.

At Vgs = 3V, the slope looks like it is 50-100mOhms, depending on which point you decide to go R = V/I. Better than I thought it would be. You would think it would work but perhaps its too borderline or something else is going on.

EDIT: Mattman944 has an explanation as to why.

enter image description here