I am currently having an issue with precision control of small brushed DC gearmotors (130 size) being used as drive motors on an autonomous robot, but this question can be applied to small, high-speed DC motors in general. On my robot, I am driving the motors with an L293D-based dual H-bridge controller, controlled by a microprocessor. I have found that simply setting both of the microcontroller outputs connected to the H-bridge low will not stop the motor quickly enough for the robot to immediately stop, resulting in imprecise turning, even when running the motors at the lowest speed possible without stalling.
I decided to try an experiment with braking several DC motors (RF300, RF370, and 130 size) with and without a 2.5-ounce flywheel on the output shaft. I connected both of the motors to 5 volt power, allowed them to reach full speed, and then disconnected power and shorted the leads on each motor using a DPDT switch, and compared the time it took for them to stop with and without shorting the leads. It seems that the stopping times for the motors are relatively the same whether or not the leads are shorted. The motors with the flywheel attached took longer to come to a stop, as expected. The same results were obtained by running the motors at 12 volts.
Is it actually possible to brake small motors?