Let's Make Robots!


Hi guys. I have to admit i do not know much about these kinds of transistors... i mean, their difference.

I have to get a large current pass through a wire, but after having read articles on wikipedia about mosfet i don't really know why i see them on, say, motor drivers instead of BJT transistors. One thing i don't know about is whether you can find logic-level high-power BJTs but i know there are logic-level FETs, like the IRLD series. But again, if you want to switch a BJT on fully then maybe you could just arrange them into a Darlington i guess.

 Hmm...so much confusion. Do these two transistor types have precise PROs and CONs? 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

They have both.

I am not in the know, but from what I understood during my three months on LMR th ebotom line is efficiency.

Mosfets can be harder to design into your circuit. They require more stuff both to feed them and to protect them. The upside is that you battery will last longer for the same kind of power going into your motor.

This is where my understanding stops, so I will let someone else take over from here. Or let someone correct what I just wrote 8-)


One charecteristic to add to Oddbots excellent description is that of parallel behavior of the 2 types of devices.

BJTs have what is called a postive temperature coefficient which means as they get warmer, their resistance to collector emitter current goes down. If 2 BJTs, paralleled with collectors and emitters connected, attempt to deliver a very large current, one device or the other will begin to heat and as it heats, begin to allow more of the total current through itself. So when 2 BJTs are hooked in this manner, one will heat to carry more and eventually fail leaving the other to carry it all so that it too fails.

FETs exhibit a negative thermal coefficient, in that their Rds-on parameter gets larger as the temperature of the device goes up, effectively limiting the current going through it. Adding another FET in parallel with drain and source connected, allows if one device carries more current and heats, it's resistance increases which sends the extra current to the other parallel FE. The first device loses current and cools a bit as the other heats, and then can take on it's share of the current again, essentially balancing each other. They too will fail if the current is too much for both devices, but they will at least act to balance the current out between the 2 allowing them to last as long as possible.

This is a great discussion that answers some questions I've always had, thanks. I've only used BJTs and I've been curious about FETs. Since I want to start messing with bigger robots with higher-power motors, I guess it'll soon be time to start learning to work with FETs.


 i waited to long robologist beat me to it :P

thank you for all the nice informations :).

I've heard that FETs can for sure be switched on by an output pin from the MCU, but unless the FET is logic-level (works fully at 5V), you are not gonna 'exploit' all of its power. But is there a way to more efficiently drive those thorugh an MCU pin? (and by more efficiently i maen turning them fully on).

I've read something like this around but don't really understand what exactly they mean:


A: Connect the PIC output directly to the Gate -- Simplest approach, but this would appear to be problematic since the PIC's HIGH output will only be 4.3V, so the FET will never "fully" turn on, reducing drive current to the LED. Also causes more power dissipation in the FET due to higher "on" resistance.

B: Use a pull-up resistor between PIC output and the Gate -- This should bring the HIGH output back up to the full 5V. Should help FET operate at rated "on-resistance", but it adds another component.

C: Use a low impedance drive resistor -- I have seen this used for other high-current switching applications and so far I have been using this configuration for the MilesTag designs. My understanding was that it helps prevent oscillations in the Gate drive. But there's alot of info about "miller effects", gate-charge, gate capacitance/inductance, etc that I don't quite understand.

or....do you know of any othe method? 

no no wait, i didn't express myself correctly. I understood why i need a transistor, i just didn't understand why something like this couldn't work :


I have almost the exact same circuit and therefore discussion in another thread about a simple motor control:


I am using this MOSFET:


and having success with wiring straight from a digital pin on a 3.3v Arduino to the gate. It is switching 7.4 volts. Common GND to drain, +7.4v to to one side of the motor and other side of the motor to source. Pull the pin up and the motor is full on. Pull it low and it turns off. Generate pulses and the duty cycle determines the speed. That's it. No other parts (the motor already has some caps on it). A single direction variable speed motor control for a dollar...