(article continued from previous page)
Recall that the ratio between the voltage supplied to the motor and the total measured power supply voltage indicates the performance of an H-bridge. A perfect H-bridge motor driver would supply 100% of the battery voltage to the motor. But, realistically, even the best motor driver has some slight voltage losses.
Test result comparison between three sets of bipolar transistors on an H-bridge delivering between 60 mA and 120 mA.
The Solarbotics GM6 gearmotor uses 60 mA of current at 2.2 V without a load. That seems fairly high when compared to a European precision DC motor (Maxon Motor, Faulhaber, Portescap). But a high-efficiency motor is going to cost 10 times as much as the GM6 -- so give it a break. At 9.6 V, the GM6 consumed 120 mA.
Check out the performance of the three different transistor sets at 2.2 V (the left side of the graph above). If you’re building a competition low-voltage solar robot (like a solaroller), you should consider switching to the Zetex bipolar transistors. They delivered almost 95% of the power to the motor, compared to only 70% by the 3904/3906 transistors.
By the time the voltage is at 5V or above (and around 90 to 120 mA), the differences between the transistors levels out a bit. The Zetex transistors continue to perform better, but perhaps not enough to justify the extra cost.
Let’s take a look at the loaded condition...
Test result comparison between three sets of bipolar transistors on an H-bridge delivering between 180 mA and 520 mA.
With the GM6 gearmotor loaded like it was on a robot, the performance differences between transistors become shockingly apparent in the test results!
The Zetex transistors continued to deliver 90% or more of the battery voltage to the motor. But the intermediate-quality 2222A/2907A transistors struggled to get over 70%. And the low-end 3904/3906 transistors were complete failures. Up to 2/3 of the power that should have gotten to the motors was wasted in the transistors of the motor driver h-bridge.
In fact, the loaded gearmotor didn’t even turn with the 2222A/2907A and 3904/3906 bipolar transistors at 2.2V. They just couldn’t supply enough power. The stalled motor just sat there -- even when I gave the LEGO geartrain a helpful push. Furthermore, the 3904/3906 transistors still couldn’t get the motor to turn when the supply voltage was 3V.
Does this mean the 3904/3906 transistors are bad transistors? No. They plainly state their low current limits in the datasheets. Unless you’re really pressed for cash, they’re just not a good choice for driving motors.
The final story of the loaded motor graph (above) is that it is lacking a 9.6V bar, unlike the no-load motor graph (at the very top of the page).
Although the GM6 gearmotor bravely struggled with the chain of LEGO gears, I knew I was overdriving the motor at 9.6V. Suddenly, I noticed based on the tachometer readout and the motor noise that everything started to slow down!
The poor gearmotor overheated. When a motor overheats, the magnets start to lose their magnetism, thus making the motor less powerful. This makes it harder to push the load, drawing more current, and heating up the electric motor even more.
The GM6 has a plastic case that makes it more difficult for it to dissipate heat. The GM6 gearmotor also has plastic gears. It is possible that the gears and case started deforming or melting due to the heat.
About a minute or two after pulling the plug, I switched the portable tachometer to temperature sensing mode. With the thermistor pressed against the plastic body of the GM6 gearmotor, the temperature measured 130 degrees Fahrenheit (as opposed to 75 degrees in the room). Given that the plastic case is an insulator and that I was a little late in testing the temperature, it is likely that the motor inside had been considerably hotter.
The bipolar junction transitor (BJT) h-bridge fits nicely on a standalone printed circuit board approximately 1 square inch in size. The dimensions could be further reduced by standing the through-hole diodes and resistors on their ends. And, of course, surface-mount components could be substituted.
Compact BJT motor driver board.
This board includes holes for a 6-pin connector or wires to directly control each transistor. A superior solution might be to mount a small low-voltage microcontroller to ensure that the wrong pair of transistors aren’t accidentally enabled.
Robots can be expensive and time-consuming to build. It seems a waste not to spend a little extra to get superior performance from the motor drivers. If you purchase 10 or more transistors, the cost can come down considerably.
If I were building a competitive robot under 5V, I’d use the Zetex transistors in the H-bridge. Of course, the nice thing about this bipolar H-bridge circuit is that you can always try the lower-cost transistors and then desolder and swap them if the robot motors need a boost.
At low voltages, bipolar transistors are superior to field-effect (MOSFET) transistors. However, if your robot or mechanical device is going to be running at voltages above 6V, and you need better performance, you might want to consider a MOSFET H-bridge.