SCHEMATICS - DC MOTOR BRAKING
Ever have a need for your robot to stop quickly? Like who put that cliff/wall there anyways?
Or perhaps maybe your robot loses control while going down hills?
There are three ways to brake DC motors. Each
way has it's own benefits and draw backs, so I will go over each for you to decide which
This method requires an encoder placed onto a
rotating part of your DC motor. You will have to write an algorithm that determines
the current velocity of your motor, and sends a reverse command to your
H-bridge until the final
velocity equals zero. This method can let your robot balance motionless on a steep hill just by
applying a reverse current to your motors.
The mechanical method is what is used on cars today. Basically you need something with
very high friction and wear resistance, and then push it as strongly as possible to your
wheel or axle. A servo actuated brake works well.
This method is probably the least reliable, but the easiest to implement. The basic
concept of this is that if you short the power and ground leads of your motor, the inductance
created by your motor in one direction will power your motor in the opposite direction.
Although your motor will still rotate, it will greatly resist the rotation. No controls or
sensors or any circuits overheating. The disadvantage is that the effect of braking
is determined by the motor you are using. Some motors brake better than others. The
el-cheapo motors dont brake at all in my experience.
So how do you short the leads when it is on a robot? Simple. Connect a
and a relay as shown. The MOSFET turns on the relay, which creates a short between the motor
Turn the MOSFET on (set C high) with your microcontroller
when you want to brake.
Basically your motor will still have an H-bridge
for normal control, but when you brake you turn the H-bridge off and use the braking circuit.
And don't forget the heatsink and flyback diode! Important, or your circuit will melt/blow up.