Electronic – arduino – Minimum components for BJT (edit: or FET) H-Bridge applied to a small 3-6V motor controlled by Arduino

arduinodc motordpdtmotor controller

First, why did he put R3 high–alone: H-Bridge Transistor Smoking?


My real question is about the minimum number of parts. I believe the minimum components for a BJT H-Bridge applied to a small 3-6V motor, controlled by an Arduino, are four of each: transistors, diodes and resistors.

I plan to use two 2N906 (PNP), two 2N3904 (NPN) and four 1kΩ resistors. I chose BJTs because they seem cheaper than MOSFETs.

http://everycircuit.com/circuit/4696275458195456

Edit: Since this question has been downvoted, I recede the BJT constraint.

Can it be done with less components?

I found many poor designs with less parts. For example, this one and this one are missing flyback diodes among other things.

Best Answer

This circuit allows you to do forward, reverse, and brake-stop (short motor out).

C1 may be required to keep flyback pulses safe for the transistors.

It cannot do PWM motor control, and you can't turn all the transistors off while the motor is running. Both of those require the flyback diodes.

For a small reversing motor it is the simplest circuit.

schematic

simulate this circuit – Schematic created using CircuitLab

For PWM you have to add the diodes.

Because any drop across the MCU's output fets supplying base current is a direct loss of motor voltage, you want transistors with the best HFE at the motor current, and an MCU with good output drive. Ganging up multiple port pins can improve the drive.

The problem with simple bipolar motor drives where port pins directly drive a single transistor, is that in traditional bipolars the HFE drops off as the current increases, at the same time as the port pin vrop is increasing. So it works well at low currents, but quite abruptly hits a current where it doesn't really work any more.

There are modern bipolars that have much higher reliable gains, and push this workable range up - especially for the high side transistors where the port pins often have significantly weaker pull up drive than pull down drive.

Also note that older bipolars BC547,BC337 have high gain grades BC547C, BC337-40 which you should be using for this.